@@ -1253,18 +1253,24 @@ mod _winapi {
12531253 Ok ( ( ) )
12541254 }
12551255
1256- /// WriteFile - Write data to a file or I/O device.
1257- # [ pyfunction ]
1258- fn WriteFile (
1256+ # [ derive ( FromArgs ) ]
1257+ struct WriteFileArgs {
1258+ # [ pyarg ( positional ) ]
12591259 handle : WinHandle ,
1260+ #[ pyarg( positional) ]
12601261 buffer : crate :: function:: ArgBytesLike ,
1261- use_overlapped : OptionalArg < bool > ,
1262- vm : & VirtualMachine ,
1263- ) -> PyResult < PyObjectRef > {
1262+ #[ pyarg( named, default = false ) ]
1263+ overlapped : bool ,
1264+ }
1265+
1266+ /// WriteFile - Write data to a file or I/O device.
1267+ #[ pyfunction]
1268+ fn WriteFile ( args : WriteFileArgs , vm : & VirtualMachine ) -> PyResult < PyObjectRef > {
12641269 use windows_sys:: Win32 :: Storage :: FileSystem :: WriteFile as WinWriteFile ;
12651270
1266- let use_overlapped = use_overlapped. unwrap_or ( false ) ;
1267- let buf = buffer. borrow_buf ( ) ;
1271+ let handle = args. handle ;
1272+ let use_overlapped = args. overlapped ;
1273+ let buf = args. buffer . borrow_buf ( ) ;
12681274 let len = core:: cmp:: min ( buf. len ( ) , u32:: MAX as usize ) as u32 ;
12691275
12701276 if use_overlapped {
@@ -1334,17 +1340,24 @@ mod _winapi {
13341340 . into ( ) )
13351341 }
13361342
1337- /// ReadFile - Read data from a file or I/O device.
1338- # [ pyfunction ]
1339- fn ReadFile (
1343+ # [ derive ( FromArgs ) ]
1344+ struct ReadFileArgs {
1345+ # [ pyarg ( positional ) ]
13401346 handle : WinHandle ,
1347+ #[ pyarg( positional) ]
13411348 size : u32 ,
1342- use_overlapped : OptionalArg < bool > ,
1343- vm : & VirtualMachine ,
1344- ) -> PyResult < PyObjectRef > {
1349+ #[ pyarg( named, default = false ) ]
1350+ overlapped : bool ,
1351+ }
1352+
1353+ /// ReadFile - Read data from a file or I/O device.
1354+ #[ pyfunction]
1355+ fn ReadFile ( args : ReadFileArgs , vm : & VirtualMachine ) -> PyResult < PyObjectRef > {
13451356 use windows_sys:: Win32 :: Storage :: FileSystem :: ReadFile as WinReadFile ;
13461357
1347- let use_overlapped = use_overlapped. unwrap_or ( false ) ;
1358+ let handle = args. handle ;
1359+ let size = args. size ;
1360+ let use_overlapped = args. overlapped ;
13481361
13491362 if use_overlapped {
13501363 use windows_sys:: Win32 :: Foundation :: ERROR_IO_PENDING ;
0 commit comments