]> git.proxmox.com Git - rustc.git/blob - vendor/winapi/src/um/ioapiset.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / vendor / winapi / src / um / ioapiset.rs
1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use shared::basetsd::{PULONG_PTR, ULONG_PTR};
7 use shared::minwindef::{BOOL, DWORD, LPDWORD, LPVOID, PULONG, ULONG};
8 use um::minwinbase::{LPOVERLAPPED, LPOVERLAPPED_ENTRY};
9 use um::winnt::HANDLE;
10 extern "system" {
11 pub fn CreateIoCompletionPort(
12 FileHandle: HANDLE,
13 ExistingCompletionPort: HANDLE,
14 CompletionKey: ULONG_PTR,
15 NumberOfConcurrentThreads: DWORD,
16 ) -> HANDLE;
17 pub fn GetQueuedCompletionStatus(
18 CompletionPort: HANDLE,
19 lpNumberOfBytesTransferred: LPDWORD,
20 lpCompletionKey: PULONG_PTR,
21 lpOverlapped: *mut LPOVERLAPPED,
22 dwMilliseconds: DWORD,
23 ) -> BOOL;
24 pub fn GetQueuedCompletionStatusEx(
25 CompletionPort: HANDLE,
26 lpCompletionPortEntries: LPOVERLAPPED_ENTRY,
27 ulCount: ULONG,
28 ulNumEntriesRemoved: PULONG,
29 dwMilliseconds: DWORD,
30 fAlertable: BOOL,
31 ) -> BOOL;
32 pub fn PostQueuedCompletionStatus(
33 CompletionPort: HANDLE,
34 dwNumberOfBytesTransferred: DWORD,
35 dwCompletionKey: ULONG_PTR,
36 lpOverlapped: LPOVERLAPPED,
37 ) -> BOOL;
38 pub fn DeviceIoControl(
39 hDevice: HANDLE,
40 dwIoControlCode: DWORD,
41 lpInBuffer: LPVOID,
42 nInBufferSize: DWORD,
43 lpOutBuffer: LPVOID,
44 nOutBufferSize: DWORD,
45 lpBytesReturned: LPDWORD,
46 lpOverlapped: LPOVERLAPPED,
47 ) -> BOOL;
48 pub fn GetOverlappedResult(
49 hFile: HANDLE,
50 lpOverlapped: LPOVERLAPPED,
51 lpNumberOfBytesTransferred: LPDWORD,
52 bWait: BOOL,
53 ) -> BOOL;
54 pub fn CancelIoEx(
55 hFile: HANDLE,
56 lpOverlapped: LPOVERLAPPED,
57 ) -> BOOL;
58 pub fn CancelIo(
59 hFile: HANDLE,
60 ) -> BOOL;
61 pub fn GetOverlappedResultEx(
62 hFile: HANDLE,
63 lpOverlapped: LPOVERLAPPED,
64 lpNumberOfBytesTransferred: LPDWORD,
65 dwMilliseconds: DWORD,
66 bAlertable: BOOL,
67 ) -> BOOL;
68 pub fn CancelSynchronousIo(
69 hThread: HANDLE,
70 ) -> BOOL;
71 }