@@ -132,7 +132,11 @@ windows_targets::link!("kernel32.dll" "system" fn WriteFile(hfile : HANDLE, lpbu
132132windows_targets:: link!( "kernel32.dll" "system" fn WriteFileEx ( hfile : HANDLE , lpbuffer : * const u8 , nnumberofbytestowrite : u32 , lpoverlapped : * mut OVERLAPPED , lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE ) -> BOOL ) ;
133133windows_targets:: link!( "ntdll.dll" "system" fn NtCreateFile ( filehandle : * mut HANDLE , desiredaccess : FILE_ACCESS_RIGHTS , objectattributes : * const OBJECT_ATTRIBUTES , iostatusblock : * mut IO_STATUS_BLOCK , allocationsize : * const i64 , fileattributes : FILE_FLAGS_AND_ATTRIBUTES , shareaccess : FILE_SHARE_MODE , createdisposition : NTCREATEFILE_CREATE_DISPOSITION , createoptions : NTCREATEFILE_CREATE_OPTIONS , eabuffer : * const core:: ffi:: c_void, ealength : u32 ) -> NTSTATUS ) ;
134134windows_targets:: link!( "ntdll.dll" "system" fn NtOpenFile ( filehandle : * mut HANDLE , desiredaccess : u32 , objectattributes : * const OBJECT_ATTRIBUTES , iostatusblock : * mut IO_STATUS_BLOCK , shareaccess : u32 , openoptions : u32 ) -> NTSTATUS ) ;
135+ windows_targets:: link!( "ntdll.dll" "system" fn NtQueryDirectoryFile ( filehandle : HANDLE , event : HANDLE , apcroutine : PIO_APC_ROUTINE , apccontext : * const core:: ffi:: c_void, iostatusblock : * mut IO_STATUS_BLOCK , fileinformation : * mut core:: ffi:: c_void, length : u32 , fileinformationclass : FILE_INFORMATION_CLASS , returnsingleentry : BOOLEAN , filename : * const UNICODE_STRING , restartscan : BOOLEAN ) -> NTSTATUS ) ;
136+ windows_targets:: link!( "ntdll.dll" "system" fn NtQueryInformationFile ( filehandle : HANDLE , iostatusblock : * mut IO_STATUS_BLOCK , fileinformation : * mut core:: ffi:: c_void, length : u32 , fileinformationclass : FILE_INFORMATION_CLASS ) -> NTSTATUS ) ;
135137windows_targets:: link!( "ntdll.dll" "system" fn NtReadFile ( filehandle : HANDLE , event : HANDLE , apcroutine : PIO_APC_ROUTINE , apccontext : * const core:: ffi:: c_void, iostatusblock : * mut IO_STATUS_BLOCK , buffer : * mut core:: ffi:: c_void, length : u32 , byteoffset : * const i64 , key : * const u32 ) -> NTSTATUS ) ;
138+ windows_targets:: link!( "ntdll.dll" "system" fn NtSetInformationFile ( filehandle : HANDLE , iostatusblock : * mut IO_STATUS_BLOCK , fileinformation : * const core:: ffi:: c_void, length : u32 , fileinformationclass : FILE_INFORMATION_CLASS ) -> NTSTATUS ) ;
139+ windows_targets:: link!( "ntdll.dll" "system" fn NtWaitForSingleObject ( handle : HANDLE , alertable : BOOLEAN , timeout : * mut i64 ) -> NTSTATUS ) ;
136140windows_targets:: link!( "ntdll.dll" "system" fn NtWriteFile ( filehandle : HANDLE , event : HANDLE , apcroutine : PIO_APC_ROUTINE , apccontext : * const core:: ffi:: c_void, iostatusblock : * mut IO_STATUS_BLOCK , buffer : * const core:: ffi:: c_void, length : u32 , byteoffset : * const i64 , key : * const u32 ) -> NTSTATUS ) ;
137141windows_targets:: link!( "ntdll.dll" "system" fn RtlNtStatusToDosError ( status : NTSTATUS ) -> u32 ) ;
138142windows_targets:: link!( "userenv.dll" "system" fn GetUserProfileDirectoryW ( htoken : HANDLE , lpprofiledir : PWSTR , lpcchsize : * mut u32 ) -> BOOL ) ;
@@ -2477,6 +2481,22 @@ pub const FILE_FLAG_RANDOM_ACCESS: FILE_FLAGS_AND_ATTRIBUTES = 268435456u32;
24772481pub const FILE_FLAG_SEQUENTIAL_SCAN : FILE_FLAGS_AND_ATTRIBUTES = 134217728u32 ;
24782482pub const FILE_FLAG_SESSION_AWARE : FILE_FLAGS_AND_ATTRIBUTES = 8388608u32 ;
24792483pub const FILE_FLAG_WRITE_THROUGH : FILE_FLAGS_AND_ATTRIBUTES = 2147483648u32 ;
2484+ #[ repr( C ) ]
2485+ #[ derive( Clone , Copy ) ]
2486+ pub struct FILE_FULL_DIR_INFO {
2487+ pub NextEntryOffset : u32 ,
2488+ pub FileIndex : u32 ,
2489+ pub CreationTime : i64 ,
2490+ pub LastAccessTime : i64 ,
2491+ pub LastWriteTime : i64 ,
2492+ pub ChangeTime : i64 ,
2493+ pub EndOfFile : i64 ,
2494+ pub AllocationSize : i64 ,
2495+ pub FileAttributes : u32 ,
2496+ pub FileNameLength : u32 ,
2497+ pub EaSize : u32 ,
2498+ pub FileName : [ u16 ; 1 ] ,
2499+ }
24802500pub const FILE_GENERIC_EXECUTE : FILE_ACCESS_RIGHTS = 1179808u32 ;
24812501pub const FILE_GENERIC_READ : FILE_ACCESS_RIGHTS = 1179785u32 ;
24822502pub const FILE_GENERIC_WRITE : FILE_ACCESS_RIGHTS = 1179926u32 ;
@@ -2499,13 +2519,20 @@ pub struct FILE_ID_BOTH_DIR_INFO {
24992519 pub FileId : i64 ,
25002520 pub FileName : [ u16 ; 1 ] ,
25012521}
2522+ pub type FILE_INFORMATION_CLASS = i32 ;
25022523pub type FILE_INFO_BY_HANDLE_CLASS = i32 ;
25032524#[ repr( C ) ]
25042525#[ derive( Clone , Copy ) ]
25052526pub struct FILE_IO_PRIORITY_HINT_INFO {
25062527 pub PriorityHint : PRIORITY_HINT ,
25072528}
25082529pub const FILE_LIST_DIRECTORY : FILE_ACCESS_RIGHTS = 1u32 ;
2530+ #[ repr( C ) ]
2531+ #[ derive( Clone , Copy ) ]
2532+ pub struct FILE_NAME_INFO {
2533+ pub FileNameLength : u32 ,
2534+ pub FileName : [ u16 ; 1 ] ,
2535+ }
25092536pub const FILE_NAME_NORMALIZED : GETFINALPATHNAMEBYHANDLE_FLAGS = 0u32 ;
25102537pub const FILE_NAME_OPENED : GETFINALPATHNAMEBYHANDLE_FLAGS = 8u32 ;
25112538pub const FILE_NON_DIRECTORY_FILE : NTCREATEFILE_CREATE_OPTIONS = 64u32 ;
@@ -2602,13 +2629,19 @@ pub const FSCTL_SET_REPARSE_POINT: u32 = 589988u32;
26022629pub const FileAlignmentInfo : FILE_INFO_BY_HANDLE_CLASS = 17i32 ;
26032630pub const FileAllocationInfo : FILE_INFO_BY_HANDLE_CLASS = 5i32 ;
26042631pub const FileAttributeTagInfo : FILE_INFO_BY_HANDLE_CLASS = 9i32 ;
2632+ pub const FileAttributeTagInformation : FILE_INFORMATION_CLASS = 35i32 ;
26052633pub const FileBasicInfo : FILE_INFO_BY_HANDLE_CLASS = 0i32 ;
2634+ pub const FileBasicInformation : FILE_INFORMATION_CLASS = 4i32 ;
26062635pub const FileCaseSensitiveInfo : FILE_INFO_BY_HANDLE_CLASS = 23i32 ;
26072636pub const FileCompressionInfo : FILE_INFO_BY_HANDLE_CLASS = 8i32 ;
26082637pub const FileDispositionInfo : FILE_INFO_BY_HANDLE_CLASS = 4i32 ;
26092638pub const FileDispositionInfoEx : FILE_INFO_BY_HANDLE_CLASS = 21i32 ;
2639+ pub const FileDispositionInformation : FILE_INFORMATION_CLASS = 13i32 ;
2640+ pub const FileDispositionInformationEx : FILE_INFORMATION_CLASS = 64i32 ;
26102641pub const FileEndOfFileInfo : FILE_INFO_BY_HANDLE_CLASS = 6i32 ;
2642+ pub const FileEndOfFileInformation : FILE_INFORMATION_CLASS = 20i32 ;
26112643pub const FileFullDirectoryInfo : FILE_INFO_BY_HANDLE_CLASS = 14i32 ;
2644+ pub const FileFullDirectoryInformation : FILE_INFORMATION_CLASS = 2i32 ;
26122645pub const FileFullDirectoryRestartInfo : FILE_INFO_BY_HANDLE_CLASS = 15i32 ;
26132646pub const FileIdBothDirectoryInfo : FILE_INFO_BY_HANDLE_CLASS = 10i32 ;
26142647pub const FileIdBothDirectoryRestartInfo : FILE_INFO_BY_HANDLE_CLASS = 11i32 ;
@@ -2617,6 +2650,7 @@ pub const FileIdExtdDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 20i32;
26172650pub const FileIdInfo : FILE_INFO_BY_HANDLE_CLASS = 18i32 ;
26182651pub const FileIoPriorityHintInfo : FILE_INFO_BY_HANDLE_CLASS = 12i32 ;
26192652pub const FileNameInfo : FILE_INFO_BY_HANDLE_CLASS = 2i32 ;
2653+ pub const FileNameInformation : FILE_INFORMATION_CLASS = 9i32 ;
26202654pub const FileNormalizedNameInfo : FILE_INFO_BY_HANDLE_CLASS = 24i32 ;
26212655pub const FileRemoteProtocolInfo : FILE_INFO_BY_HANDLE_CLASS = 13i32 ;
26222656pub const FileRenameInfo : FILE_INFO_BY_HANDLE_CLASS = 3i32 ;
0 commit comments