Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/python3.12/internal/pycore_fileutils_windows.h
$ cat -n /usr/include/python3.12/internal/pycore_fileutils_windows.h 1 #ifndef Py_INTERNAL_FILEUTILS_WINDOWS_H 2 #define Py_INTERNAL_FILEUTILS_WINDOWS_H 3 #ifdef __cplusplus 4 extern "C" { 5 #endif 6 7 #ifndef Py_BUILD_CORE 8 # error "Py_BUILD_CORE must be defined to include this header" 9 #endif 10 11 #ifdef MS_WINDOWS 12 13 #if !defined(NTDDI_WIN10_NI) || !(NTDDI_VERSION >= NTDDI_WIN10_NI) 14 typedef struct _FILE_STAT_BASIC_INFORMATION { 15 LARGE_INTEGER FileId; 16 LARGE_INTEGER CreationTime; 17 LARGE_INTEGER LastAccessTime; 18 LARGE_INTEGER LastWriteTime; 19 LARGE_INTEGER ChangeTime; 20 LARGE_INTEGER AllocationSize; 21 LARGE_INTEGER EndOfFile; 22 ULONG FileAttributes; 23 ULONG ReparseTag; 24 ULONG NumberOfLinks; 25 ULONG DeviceType; 26 ULONG DeviceCharacteristics; 27 ULONG Reserved; 28 LARGE_INTEGER VolumeSerialNumber; 29 FILE_ID_128 FileId128; 30 } FILE_STAT_BASIC_INFORMATION; 31 32 typedef enum _FILE_INFO_BY_NAME_CLASS { 33 FileStatByNameInfo, 34 FileStatLxByNameInfo, 35 FileCaseSensitiveByNameInfo, 36 FileStatBasicByNameInfo, 37 MaximumFileInfoByNameClass 38 } FILE_INFO_BY_NAME_CLASS; 39 #endif 40 41 typedef BOOL (WINAPI *PGetFileInformationByName)( 42 PCWSTR FileName, 43 FILE_INFO_BY_NAME_CLASS FileInformationClass, 44 PVOID FileInfoBuffer, 45 ULONG FileInfoBufferSize 46 ); 47 48 static inline BOOL _Py_GetFileInformationByName( 49 PCWSTR FileName, 50 FILE_INFO_BY_NAME_CLASS FileInformationClass, 51 PVOID FileInfoBuffer, 52 ULONG FileInfoBufferSize 53 ) { 54 static PGetFileInformationByName GetFileInformationByName = NULL; 55 static int GetFileInformationByName_init = -1; 56 57 if (GetFileInformationByName_init < 0) { 58 HMODULE hMod = LoadLibraryW(L"api-ms-win-core-file-l2-1-4"); 59 GetFileInformationByName_init = 0; 60 if (hMod) { 61 GetFileInformationByName = (PGetFileInformationByName)GetProcAddress( 62 hMod, "GetFileInformationByName"); 63 if (GetFileInformationByName) { 64 GetFileInformationByName_init = 1; 65 } else { 66 FreeLibrary(hMod); 67 } 68 } 69 } 70 71 if (GetFileInformationByName_init <= 0) { 72 SetLastError(ERROR_NOT_SUPPORTED); 73 return FALSE; 74 } 75 return GetFileInformationByName(FileName, FileInformationClass, FileInfoBuffer, FileInfoBufferSize); 76 } 77 78 static inline BOOL _Py_GetFileInformationByName_ErrorIsTrustworthy(int error) 79 { 80 switch(error) { 81 case ERROR_FILE_NOT_FOUND: 82 case ERROR_PATH_NOT_FOUND: 83 case ERROR_NOT_READY: 84 case ERROR_BAD_NET_NAME: 85 case ERROR_BAD_NETPATH: 86 case ERROR_BAD_PATHNAME: 87 case ERROR_INVALID_NAME: 88 case ERROR_FILENAME_EXCED_RANGE: 89 return TRUE; 90 case ERROR_NOT_SUPPORTED: 91 return FALSE; 92 } 93 return FALSE; 94 } 95 96 #endif 97 98 #endif
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™