Wrong value for |FileNormalizedNameInfo| (|24| vs. |48|) in Cygwin 3.6 /usr/include ...

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Sat May 11 16:17:18 GMT 2024


On 2024-05-11 05:30, Roland Mainz via Cygwin wrote:
> I'm writing a test program for |FileNormalizedNameInfo| right now (see
> https://rovema.kpaste.net/07074abc).
> Per https://learn.microsoft.com/en-us/windows/win32/api/minwinbase/ne-minwinbase-file_info_by_handle_class
> |FileNormalizedNameInfo| should be |24|, but on Cygwin 3.6 I get the
> value |48|.
> Since |GetFileInformationByHandleEx()| gives me error 87 (="Invalid
> Parameter") for |48|, but works as intended for |24| I assume that the
> Cygwin header is wrong.
> 
> Could someone please check the Cygwin header files ?

Could someone please read the enum constant names and classes carefully?

Package w32api-headers:

> Headers:
> ---- snip ----
> $ grep -r FileNormalizedNameInfo /usr/include/
> /usr/include/w32api/ddk/wdm.h:  FileNormalizedNameInformation,
> /usr/include/w32api/minwinbase.h:    *FileNormalizedNameInfo*,
> /usr/include/w32api/winternl.h:    FileNormalizedNameInformation = 48,
> ---- snip ----

*FileNormalizedNameInfo* 24/0x18 is defined in minwinbase.h 
FILE_INFO_BY_HANDLE_CLASS for GetFileInformationByHandleEx whereas 
*FileNormalizedNameInformation* 44/0x2e is defined in winternl.h 
FILE_INFORMATION_CLASS for NtQueryInformationFile:

https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntqueryinformationfile

ditto in ddk/wdm.h!

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry


More information about the Cygwin mailing list