The Windows API supports a GetVolumeInformation function. This function provides information about a Windows volume. Specifically, it returns a FILE_CASE_SENSITIVE_SEARCH switch. In the kernel there are FltQueryVolumeInformation and ZwQueryVolumeInformationFile, but I don't see any way to derive the case sensitivity information from the available information classes.
Am I correct in understanding that the FILE_CASE_SENSITIVE_SEARCH switch only specifies that a case sensitive search is possible (not that it is done by default)? Is it correct that you only know about case sensitivity based on the way the file is opened (i.e. you must call CreateFile with the FILE_FLAG_POSIX_SEMANTICS flag, otherwise Win32 case-insensitive behavior is used)?