|
12 | 12 |
|
13 | 13 | #![allow(bad_style)]
|
14 | 14 | #![cfg_attr(test, allow(dead_code))]
|
| 15 | +#![unstable(issue = "0", feature = "windows_c")] |
15 | 16 |
|
16 | 17 | use os::raw::{c_int, c_uint, c_ulong, c_long, c_longlong, c_ushort,};
|
17 | 18 | use os::raw::{c_char, c_ulonglong};
|
@@ -181,13 +182,15 @@ pub const ERROR_PATH_NOT_FOUND: DWORD = 3;
|
181 | 182 | pub const ERROR_ACCESS_DENIED: DWORD = 5;
|
182 | 183 | pub const ERROR_INVALID_HANDLE: DWORD = 6;
|
183 | 184 | pub const ERROR_NO_MORE_FILES: DWORD = 18;
|
| 185 | +pub const ERROR_HANDLE_EOF: DWORD = 38; |
184 | 186 | pub const ERROR_BROKEN_PIPE: DWORD = 109;
|
185 | 187 | pub const ERROR_CALL_NOT_IMPLEMENTED: DWORD = 120;
|
186 | 188 | pub const ERROR_INSUFFICIENT_BUFFER: DWORD = 122;
|
187 | 189 | pub const ERROR_ALREADY_EXISTS: DWORD = 183;
|
188 | 190 | pub const ERROR_NO_DATA: DWORD = 232;
|
189 | 191 | pub const ERROR_ENVVAR_NOT_FOUND: DWORD = 203;
|
190 | 192 | pub const ERROR_OPERATION_ABORTED: DWORD = 995;
|
| 193 | +pub const ERROR_IO_PENDING: DWORD = 997; |
191 | 194 | pub const ERROR_TIMEOUT: DWORD = 0x5B4;
|
192 | 195 |
|
193 | 196 | pub const INVALID_HANDLE_VALUE: HANDLE = !0 as HANDLE;
|
@@ -292,6 +295,14 @@ pub const EXCEPTION_UNWIND: DWORD = EXCEPTION_UNWINDING |
|
292 | 295 | EXCEPTION_TARGET_UNWIND |
|
293 | 296 | EXCEPTION_COLLIDED_UNWIND;
|
294 | 297 |
|
| 298 | +pub const PIPE_ACCESS_INBOUND: DWORD = 0x00000001; |
| 299 | +pub const FILE_FLAG_FIRST_PIPE_INSTANCE: DWORD = 0x00080000; |
| 300 | +pub const FILE_FLAG_OVERLAPPED: DWORD = 0x40000000; |
| 301 | +pub const PIPE_WAIT: DWORD = 0x00000000; |
| 302 | +pub const PIPE_TYPE_BYTE: DWORD = 0x00000000; |
| 303 | +pub const PIPE_REJECT_REMOTE_CLIENTS: DWORD = 0x00000008; |
| 304 | +pub const PIPE_READMODE_BYTE: DWORD = 0x00000000; |
| 305 | + |
295 | 306 | #[repr(C)]
|
296 | 307 | #[cfg(target_arch = "x86")]
|
297 | 308 | pub struct WSADATA {
|
@@ -913,10 +924,6 @@ extern "system" {
|
913 | 924 | nOutBufferSize: DWORD,
|
914 | 925 | lpBytesReturned: LPDWORD,
|
915 | 926 | lpOverlapped: LPOVERLAPPED) -> BOOL;
|
916 |
| - pub fn CreatePipe(hReadPipe: LPHANDLE, |
917 |
| - hWritePipe: LPHANDLE, |
918 |
| - lpPipeAttributes: LPSECURITY_ATTRIBUTES, |
919 |
| - nSize: DWORD) -> BOOL; |
920 | 927 | pub fn CreateThread(lpThreadAttributes: LPSECURITY_ATTRIBUTES,
|
921 | 928 | dwStackSize: SIZE_T,
|
922 | 929 | lpStartAddress: extern "system" fn(*mut c_void)
|
@@ -1129,6 +1136,29 @@ extern "system" {
|
1129 | 1136 | OriginalContext: *const CONTEXT,
|
1130 | 1137 | HistoryTable: *const UNWIND_HISTORY_TABLE);
|
1131 | 1138 | pub fn GetSystemTimeAsFileTime(lpSystemTimeAsFileTime: LPFILETIME);
|
| 1139 | + |
| 1140 | + pub fn CreateEventW(lpEventAttributes: LPSECURITY_ATTRIBUTES, |
| 1141 | + bManualReset: BOOL, |
| 1142 | + bInitialState: BOOL, |
| 1143 | + lpName: LPCWSTR) -> HANDLE; |
| 1144 | + pub fn WaitForMultipleObjects(nCount: DWORD, |
| 1145 | + lpHandles: *const HANDLE, |
| 1146 | + bWaitAll: BOOL, |
| 1147 | + dwMilliseconds: DWORD) -> DWORD; |
| 1148 | + pub fn CreateNamedPipeW(lpName: LPCWSTR, |
| 1149 | + dwOpenMode: DWORD, |
| 1150 | + dwPipeMode: DWORD, |
| 1151 | + nMaxInstances: DWORD, |
| 1152 | + nOutBufferSize: DWORD, |
| 1153 | + nInBufferSize: DWORD, |
| 1154 | + nDefaultTimeOut: DWORD, |
| 1155 | + lpSecurityAttributes: LPSECURITY_ATTRIBUTES) |
| 1156 | + -> HANDLE; |
| 1157 | + pub fn CancelIo(handle: HANDLE) -> BOOL; |
| 1158 | + pub fn GetOverlappedResult(hFile: HANDLE, |
| 1159 | + lpOverlapped: LPOVERLAPPED, |
| 1160 | + lpNumberOfBytesTransferred: LPDWORD, |
| 1161 | + bWait: BOOL) -> BOOL; |
1132 | 1162 | }
|
1133 | 1163 |
|
1134 | 1164 | // Functions that aren't available on Windows XP, but we still use them and just
|
|
0 commit comments