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::minwindef::{DWORD, ULONG}; 7 use shared::ws2def::IOC_VENDOR; 8 use um::winnt::{LONG, PVOID, ULONGLONG}; 9 pub const SIO_SET_COMPATIBILITY_MODE: DWORD = _WSAIOW!(IOC_VENDOR, 300); 10 ENUM!{enum WSA_COMPATIBILITY_BEHAVIOR_ID { 11 WsaBehaviorAll = 0, 12 WsaBehaviorReceiveBuffering, 13 WsaBehaviorAutoTuning, 14 }} 15 pub type PWSA_COMPATIBILITY_BEHAVIOR_ID = *mut WSA_COMPATIBILITY_BEHAVIOR_ID; 16 STRUCT!{struct WSA_COMPATIBILITY_MODE { 17 BehaviorId: WSA_COMPATIBILITY_BEHAVIOR_ID, 18 TargetOsVersion: ULONG, 19 }} 20 pub type PWSA_COMPATIBILITY_MODE = *mut WSA_COMPATIBILITY_MODE; 21 pub type RIO_BUFFERID = PVOID; 22 pub type PRIO_BUFFERID = *mut PVOID; 23 pub type RIO_CQ = PVOID; 24 pub type PRIO_CQ = *mut PVOID; 25 pub type RIO_RQ = PVOID; 26 pub type PRIO_RQ = *mut PVOID; 27 STRUCT!{struct RIORESULT { 28 Status: LONG, 29 BytesTransferred: ULONG, 30 SocketContext: ULONGLONG, 31 RequestContext: ULONGLONG, 32 }} 33 pub type PRIORESULT = *mut RIORESULT; 34 STRUCT!{struct RIO_BUF { 35 BufferId: RIO_BUFFERID, 36 Offset: ULONG, 37 Length: ULONG, 38 }} 39 pub type PRIO_BUF = *mut RIO_BUF; 40 pub const RIO_MSG_DONT_NOTIFY: DWORD = 0x00000001; 41 pub const RIO_MSG_DEFER: DWORD = 0x00000002; 42 pub const RIO_MSG_WAITALL: DWORD = 0x00000004; 43 pub const RIO_MSG_COMMIT_ONLY: DWORD = 0x00000008; 44 pub const RIO_INVALID_BUFFERID: RIO_BUFFERID = 0xFFFFFFFF as RIO_BUFFERID; 45 pub const RIO_INVALID_CQ: RIO_CQ = 0 as RIO_CQ; 46 pub const RIO_INVALID_RQ: RIO_RQ = 0 as RIO_RQ; 47 pub const RIO_MAX_CQ_SIZE: DWORD = 0x8000000; 48 pub const RIO_CORRUPT_CQ: ULONG = 0xFFFFFFFF; 49