FileAttributeTagInformation

Hello,

I believe this question could only be answered by someone at Microsoft. The
definition of enumerated type _FILE_INFORMATION_CLASS is different in W2K
versions of ntifs.h and ntddk.h. For instance, FileAttributeTagInformation
is defined as an enumerated constant of enumerated type
_FILE_INFORMATION_CLASS only in ntddk.h. It is NOT defined as an enumerated
constant in ntifs.h. *However*, in versions of ntifs.h & ntddk.h for W2K
beta 3, this enumerated type is defined in exactly the same way in both
header files. Apparently, ntifs.h was changed for final version of W2K.

Due to this, my driver no longer compiles with final version of ntifs.h
because the routine that handles IRP_MJ_QUERY_INFORMATION needs to case on
FileAttributeTagInformation which is flagged as an undeclared identifier.
Does this
mean I need to include ntddk.h insead of ntifs.h to use
FileAttributeTagInformation class? This seems strange. I would
expect both ntddk.h and ntifs.h to define _FILE_INFORMATION_CLASS in exactly
the same way. Unless someone could explain.

Thanks
Qasim

Actually, ntifs.h is correct in the release. I am guessing that you
didn’t read the IFSKit errata (found at
http://www.microsoft.com/DDK/IFSkit/errata.htm) This errata states:

In the Windows 2000 IFS Kit installer (setup.exe), when choosing which
component groups to install, if you select “Windows 2000 IFS Kit,” do
not select “Windows NT 4.0 IFS Kit.” If you select both versions, the
Windows NT 4.0 IFS Kit is installed on top of the Windows 2000 IFS Kit,
causing the Windows 2000 versions of files such as ntifs.h to be
replaced with the Windows NT 4.0 versions.

I tried out this scenario and indeed I got the NT 4.0 ntifs.h which does
not contain the enum’s you wanted.

If you will uninstall the IFSKit and reinstall it without selecting the
4.0 IFSKit option, I believe you will get a proper Windows 2000 ntifs.h
file.

Neal Christiansen

PS Everyone should periodically check this errata for problem updates.

-----Original Message-----
From: Qasim Zuhair [mailto:xxxxx@Attachmate.com]
Sent: Monday, May 01, 2000 9:53 PM
To: File Systems Developers
Subject: [ntfsd] FileAttributeTagInformation

Hello,

I believe this question could only be answered by someone at Microsoft.
The
definition of enumerated type _FILE_INFORMATION_CLASS is different in
W2K
versions of ntifs.h and ntddk.h. For instance,
FileAttributeTagInformation
is defined as an enumerated constant of enumerated type
_FILE_INFORMATION_CLASS only in ntddk.h. It is NOT defined as an
enumerated
constant in ntifs.h. *However*, in versions of ntifs.h & ntddk.h for W2K
beta 3, this enumerated type is defined in exactly the same way in both
header files. Apparently, ntifs.h was changed for final version of W2K.

Due to this, my driver no longer compiles with final version of ntifs.h
because the routine that handles IRP_MJ_QUERY_INFORMATION needs to case
on
FileAttributeTagInformation which is flagged as an undeclared
identifier.
Does this
mean I need to include ntddk.h insead of ntifs.h to use
FileAttributeTagInformation class? This seems strange. I would
expect both ntddk.h and ntifs.h to define _FILE_INFORMATION_CLASS in
exactly
the same way. Unless someone could explain.

Thanks
Qasim


You are currently subscribed to ntfsd as: xxxxx@Exchange.Microsoft.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)

Hello,

You are correct. The problem was that I ended up selecting both “Windows
2000 IFS Kit” and “Windows NT 4.0 IFS Kit” assuming that their files would
be installed in different locations. However, as I realized it later and as
you have stated it below, Windows NT 4.0 IFS Kit gets installed over Windows
2000 IFS Kit. I reinstalled the kit
selecting only Windows 2000 kit, and the problem went away.

It is probably already being planned for the next release of Windows 2000
kit but I think that installer should offer these choices as mutually
exlusive choices rather
than as check boxes. Otherwise, it appears as if it is possible to install
both.

Thanks for the help!

Qasim

-----Original Message-----
From: Neal Christiansen [mailto:xxxxx@Exchange.Microsoft.com]
Sent: Friday, May 05, 2000 4:51 PM
To: File Systems Developers
Subject: [ntfsd] RE: FileAttributeTagInformation

Actually, ntifs.h is correct in the release. I am guessing that you didn’t
read the IFSKit errata (found at
http://www.microsoft.com/DDK/IFSkit/errata.htm
http: ) This errata states:

In the Windows 2000 IFS Kit installer (setup.exe), when choosing which
component groups to install, if you select “Windows 2000 IFS Kit,” do not
select “Windows NT 4.0 IFS Kit.” If you select both versions, the Windows NT
4.0 IFS Kit is installed on top of the Windows 2000 IFS Kit, causing the
Windows 2000 versions of files such as ntifs.h to be replaced with the
Windows NT 4.0 versions.

I tried out this scenario and indeed I got the NT 4.0 ntifs.h which does not
contain the enum’s you wanted.

If you will uninstall the IFSKit and reinstall it without selecting the 4.0
IFSKit option, I believe you will get a proper Windows 2000 ntifs.h file.

Neal Christiansen

PS Everyone should periodically check this errata for problem updates.

-----Original Message-----
From: Qasim Zuhair [mailto:xxxxx@Attachmate.com
mailto:xxxxx]
Sent: Monday, May 01, 2000 9:53 PM
To: File Systems Developers
Subject: [ntfsd] FileAttributeTagInformation

Hello,

I believe this question could only be answered by someone at Microsoft. The
definition of enumerated type _FILE_INFORMATION_CLASS is different in W2K
versions of ntifs.h and ntddk.h. For instance, FileAttributeTagInformation
is defined as an enumerated constant of enumerated type
_FILE_INFORMATION_CLASS only in ntddk.h. It is NOT defined as an enumerated
constant in ntifs.h. However, in versions of ntifs.h & ntddk.h for W2K
beta 3, this enumerated type is defined in exactly the same way in both
header files. Apparently, ntifs.h was changed for final version of W2K.

Due to this, my driver no longer compiles with final version of ntifs.h
because the routine that handles IRP_MJ_QUERY_INFORMATION needs to case on
FileAttributeTagInformation which is flagged as an undeclared identifier.
Does this
mean I need to include ntddk.h insead of ntifs.h to use
FileAttributeTagInformation class? This seems strange. I would
expect both ntddk.h and ntifs.h to define _FILE_INFORMATION_CLASS in exactly

the same way. Unless someone could explain.

Thanks
Qasim


You are currently subscribed to ntfsd as: xxxxx@Exchange.Microsoft.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)</mailto:xxxxx></http:>