On Nov 14 13:46, Kai Tietz wrote: > 2012/11/14 Corinna Vinschen <vinsc...@redhat.com>: > > 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 Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public