@@ -10,7 +10,9 @@ use std::ptr;
10
10
mod utils;
11
11
12
12
use windows_sys:: Win32 :: Foundation :: {
13
- CloseHandle , ERROR_ALREADY_EXISTS , GENERIC_READ , GENERIC_WRITE , GetLastError ,
13
+ CloseHandle , ERROR_ACCESS_DENIED , ERROR_ALREADY_EXISTS , ERROR_IO_DEVICE , GENERIC_READ ,
14
+ GENERIC_WRITE , GetLastError , RtlNtStatusToDosError , STATUS_ACCESS_DENIED ,
15
+ STATUS_IO_DEVICE_ERROR ,
14
16
} ;
15
17
use windows_sys:: Win32 :: Storage :: FileSystem :: {
16
18
BY_HANDLE_FILE_INFORMATION , CREATE_ALWAYS , CREATE_NEW , CreateFileW , FILE_ATTRIBUTE_DIRECTORY ,
@@ -26,6 +28,7 @@ fn main() {
26
28
test_create_always_twice ( ) ;
27
29
test_open_always_twice ( ) ;
28
30
test_open_dir_reparse ( ) ;
31
+ test_ntstatus_to_dos ( ) ;
29
32
}
30
33
}
31
34
@@ -191,6 +194,12 @@ unsafe fn test_open_dir_reparse() {
191
194
} ;
192
195
}
193
196
197
+ unsafe fn test_ntstatus_to_dos ( ) {
198
+ // We won't test all combinations, just a couple common ones
199
+ assert_eq ! ( RtlNtStatusToDosError ( STATUS_IO_DEVICE_ERROR ) , ERROR_IO_DEVICE ) ;
200
+ assert_eq ! ( RtlNtStatusToDosError ( STATUS_ACCESS_DENIED ) , ERROR_ACCESS_DENIED ) ;
201
+ }
202
+
194
203
fn to_wide_cstr ( path : & Path ) -> Vec < u16 > {
195
204
let mut raw_path = path. as_os_str ( ) . encode_wide ( ) . collect :: < Vec < _ > > ( ) ;
196
205
raw_path. extend ( [ 0 , 0 ] ) ;
0 commit comments