@@ -132,7 +132,11 @@ windows_targets::link!("kernel32.dll" "system" fn WriteFile(hfile : HANDLE, lpbu
132
132
windows_targets:: link!( "kernel32.dll" "system" fn WriteFileEx ( hfile : HANDLE , lpbuffer : * const u8 , nnumberofbytestowrite : u32 , lpoverlapped : * mut OVERLAPPED , lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE ) -> BOOL ) ;
133
133
windows_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 ) ;
134
134
windows_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 ) ;
135
137
windows_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 ) ;
136
140
windows_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 ) ;
137
141
windows_targets:: link!( "ntdll.dll" "system" fn RtlNtStatusToDosError ( status : NTSTATUS ) -> u32 ) ;
138
142
windows_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;
2477
2481
pub const FILE_FLAG_SEQUENTIAL_SCAN : FILE_FLAGS_AND_ATTRIBUTES = 134217728u32 ;
2478
2482
pub const FILE_FLAG_SESSION_AWARE : FILE_FLAGS_AND_ATTRIBUTES = 8388608u32 ;
2479
2483
pub 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
+ }
2480
2500
pub const FILE_GENERIC_EXECUTE : FILE_ACCESS_RIGHTS = 1179808u32 ;
2481
2501
pub const FILE_GENERIC_READ : FILE_ACCESS_RIGHTS = 1179785u32 ;
2482
2502
pub const FILE_GENERIC_WRITE : FILE_ACCESS_RIGHTS = 1179926u32 ;
@@ -2499,13 +2519,20 @@ pub struct FILE_ID_BOTH_DIR_INFO {
2499
2519
pub FileId : i64 ,
2500
2520
pub FileName : [ u16 ; 1 ] ,
2501
2521
}
2522
+ pub type FILE_INFORMATION_CLASS = i32 ;
2502
2523
pub type FILE_INFO_BY_HANDLE_CLASS = i32 ;
2503
2524
#[ repr( C ) ]
2504
2525
#[ derive( Clone , Copy ) ]
2505
2526
pub struct FILE_IO_PRIORITY_HINT_INFO {
2506
2527
pub PriorityHint : PRIORITY_HINT ,
2507
2528
}
2508
2529
pub 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
+ }
2509
2536
pub const FILE_NAME_NORMALIZED : GETFINALPATHNAMEBYHANDLE_FLAGS = 0u32 ;
2510
2537
pub const FILE_NAME_OPENED : GETFINALPATHNAMEBYHANDLE_FLAGS = 8u32 ;
2511
2538
pub const FILE_NON_DIRECTORY_FILE : NTCREATEFILE_CREATE_OPTIONS = 64u32 ;
@@ -2602,13 +2629,19 @@ pub const FSCTL_SET_REPARSE_POINT: u32 = 589988u32;
2602
2629
pub const FileAlignmentInfo : FILE_INFO_BY_HANDLE_CLASS = 17i32 ;
2603
2630
pub const FileAllocationInfo : FILE_INFO_BY_HANDLE_CLASS = 5i32 ;
2604
2631
pub const FileAttributeTagInfo : FILE_INFO_BY_HANDLE_CLASS = 9i32 ;
2632
+ pub const FileAttributeTagInformation : FILE_INFORMATION_CLASS = 35i32 ;
2605
2633
pub const FileBasicInfo : FILE_INFO_BY_HANDLE_CLASS = 0i32 ;
2634
+ pub const FileBasicInformation : FILE_INFORMATION_CLASS = 4i32 ;
2606
2635
pub const FileCaseSensitiveInfo : FILE_INFO_BY_HANDLE_CLASS = 23i32 ;
2607
2636
pub const FileCompressionInfo : FILE_INFO_BY_HANDLE_CLASS = 8i32 ;
2608
2637
pub const FileDispositionInfo : FILE_INFO_BY_HANDLE_CLASS = 4i32 ;
2609
2638
pub const FileDispositionInfoEx : FILE_INFO_BY_HANDLE_CLASS = 21i32 ;
2639
+ pub const FileDispositionInformation : FILE_INFORMATION_CLASS = 13i32 ;
2640
+ pub const FileDispositionInformationEx : FILE_INFORMATION_CLASS = 64i32 ;
2610
2641
pub const FileEndOfFileInfo : FILE_INFO_BY_HANDLE_CLASS = 6i32 ;
2642
+ pub const FileEndOfFileInformation : FILE_INFORMATION_CLASS = 20i32 ;
2611
2643
pub const FileFullDirectoryInfo : FILE_INFO_BY_HANDLE_CLASS = 14i32 ;
2644
+ pub const FileFullDirectoryInformation : FILE_INFORMATION_CLASS = 2i32 ;
2612
2645
pub const FileFullDirectoryRestartInfo : FILE_INFO_BY_HANDLE_CLASS = 15i32 ;
2613
2646
pub const FileIdBothDirectoryInfo : FILE_INFO_BY_HANDLE_CLASS = 10i32 ;
2614
2647
pub const FileIdBothDirectoryRestartInfo : FILE_INFO_BY_HANDLE_CLASS = 11i32 ;
@@ -2617,6 +2650,7 @@ pub const FileIdExtdDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 20i32;
2617
2650
pub const FileIdInfo : FILE_INFO_BY_HANDLE_CLASS = 18i32 ;
2618
2651
pub const FileIoPriorityHintInfo : FILE_INFO_BY_HANDLE_CLASS = 12i32 ;
2619
2652
pub const FileNameInfo : FILE_INFO_BY_HANDLE_CLASS = 2i32 ;
2653
+ pub const FileNameInformation : FILE_INFORMATION_CLASS = 9i32 ;
2620
2654
pub const FileNormalizedNameInfo : FILE_INFO_BY_HANDLE_CLASS = 24i32 ;
2621
2655
pub const FileRemoteProtocolInfo : FILE_INFO_BY_HANDLE_CLASS = 13i32 ;
2622
2656
pub const FileRenameInfo : FILE_INFO_BY_HANDLE_CLASS = 3i32 ;
0 commit comments