On Nov 14 13:46, Kai Tietz wrote:
> 2012/11/14 Corinna Vinschen <[email protected]>:
> > Hi,
> >
> > just reading the WDK docs, I found that the structures called
> > FILE_ID_BOTH_DIRECTORY_INFORMATION and FILE_ID_FULL_DIRECTORY_INFORMATION
> > in winternl.h are actually called FILE_ID_BOTH_DIR_INFORMATION and
> > FILE_ID_FULL_DIR_INFORMATION.
> >
> > That has been fixed for the non-ID variants by allowing both names
> > (with and without "ECTORY"), but it's missing for the ID variants.
> >
> > Along the same lines, the non-typdef'ed name of the structures also uses
> > the short form in the WDK docs(*), struct _FILE_FULL_DIR_INFORMATION,
> > not struct _FILE_FULL_DIRECTORY_INFORMATION, etc.
> >
> > Shouldn't that be fixed in winternl.h as well?
> >
> >
> > Corinna
> >
> >
> > (*)
> > http://msdn.microsoft.com/en-us/library/windows/hardware/ff540289%28v=vs.85%29.aspx
> >
> > http://msdn.microsoft.com/en-us/library/windows/hardware/ff540310%28v=vs.85%29.aspx
> >
> > http://msdn.microsoft.com/en-us/library/windows/hardware/ff540235%28v=vs.85%29.aspx
> >
> > http://msdn.microsoft.com/en-us/library/windows/hardware/ff540303%28v=vs.85%29.aspx
>
>
> I would vote to fix that in winternl.h header, too. by this we avoid
> future clashes.
Ok, I propose the following patch. I moved the old definitions into
their own, distinct typedef block to be able to mark them with a
comment. Feel free to change the comment any way you like.
Corinna
* winternl.h (struct _FILE_FULL_DIR_INFORMATION): Rename from
_FILE_FULL_DIRECTORY_INFORMATION per WDK documentation.
(struct _FILE_ID_FULL_DIR_INFORMATION): Rename from
_FILE_ID_FULL_DIRECTORY_INFORMATION.
(struct _FILE_BOTH_DIR_INFORMATION): Rename from
_FILE_BOTH_DIRECTORY_INFORMATION.
(struct _FILE_ID_BOTH_DIR_INFORMATION): Rename from
_FILE_ID_BOTH_DIRECTORY_INFORMATION.
(FILE_FULL_DIRECTORY_INFORMATION, PFILE_FULL_DIRECTORY_INFORMATION,
FILE_ID_FULL_DIRECTORY_INFORMATION, PFILE_ID_FULL_DIRECTORY_INFORMATION,
FILE_BOTH_DIRECTORY_INFORMATION, PFILE_BOTH_DIRECTORY_INFORMATION,
FILE_ID_BOTH_DIRECTORY_INFORMATION,
PFILE_ID_BOTH_DIRECTORY_INFORMATION): Explicitely typedef in a new
block. Add comment to describe as being outdated.
Index: winternl.h
===================================================================
--- winternl.h (revision 5452)
+++ winternl.h (working copy)
@@ -267,7 +267,7 @@
WCHAR FileName[ANYSIZE_ARRAY];
} FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;
- typedef struct _FILE_FULL_DIRECTORY_INFORMATION {
+ typedef struct _FILE_FULL_DIR_INFORMATION {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
@@ -280,9 +280,9 @@
ULONG FileNameLength;
ULONG EaSize;
WCHAR FileName[ANYSIZE_ARRAY];
- } FILE_FULL_DIRECTORY_INFORMATION,
*PFILE_FULL_DIRECTORY_INFORMATION,FILE_FULL_DIR_INFORMATION,
*PFILE_FULL_DIR_INFORMATION;
+ } FILE_FULL_DIR_INFORMATION, *PFILE_FULL_DIR_INFORMATION;
- typedef struct _FILE_ID_FULL_DIRECTORY_INFORMATION {
+ typedef struct _FILE_ID_FULL_DIR_INFORMATION {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
@@ -296,9 +296,9 @@
ULONG EaSize;
LARGE_INTEGER FileId;
WCHAR FileName[ANYSIZE_ARRAY];
- } FILE_ID_FULL_DIRECTORY_INFORMATION, *PFILE_ID_FULL_DIRECTORY_INFORMATION;
+ } FILE_ID_FULL_DIR_INFORMATION, *PFILE_ID_FULL_DIR_INFORMATION;
- typedef struct _FILE_BOTH_DIRECTORY_INFORMATION {
+ typedef struct _FILE_BOTH_DIR_INFORMATION {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
@@ -313,9 +313,9 @@
CHAR ShortNameLength;
WCHAR ShortName[12];
WCHAR FileName[ANYSIZE_ARRAY];
- } FILE_BOTH_DIRECTORY_INFORMATION,
*PFILE_BOTH_DIRECTORY_INFORMATION,FILE_BOTH_DIR_INFORMATION,
*PFILE_BOTH_DIR_INFORMATION;
+ } FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
- typedef struct _FILE_ID_BOTH_DIRECTORY_INFORMATION {
+ typedef struct _FILE_ID_BOTH_DIR_INFORMATION {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
@@ -331,8 +331,19 @@
WCHAR ShortName[12];
LARGE_INTEGER FileId;
WCHAR FileName[ANYSIZE_ARRAY];
- } FILE_ID_BOTH_DIRECTORY_INFORMATION, *PFILE_ID_BOTH_DIRECTORY_INFORMATION;
+ } FILE_ID_BOTH_DIR_INFORMATION, *PFILE_ID_BOTH_DIR_INFORMATION;
+ /* Old names of dir info structures as descibed in Nebbitt's Native API
+ Reference. Keep for backward compatibility. */
+ typedef struct _FILE_FULL_DIR_INFORMATION
+ FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION;
+ typedef struct _FILE_ID_FULL_DIR_INFORMATION
+ FILE_ID_FULL_DIRECTORY_INFORMATION, *PFILE_ID_FULL_DIRECTORY_INFORMATION;
+ typedef struct _FILE_BOTH_DIR_INFORMATION
+ FILE_BOTH_DIRECTORY_INFORMATION, *PFILE_BOTH_DIRECTORY_INFORMATION;
+ typedef struct _FILE_ID_BOTH_DIR_INFORMATION
+ FILE_ID_BOTH_DIRECTORY_INFORMATION, *PFILE_ID_BOTH_DIRECTORY_INFORMATION;
+
typedef struct _FILE_BASIC_INFORMATION {
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public