| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| use shared::minwindef::{DWORD, ULONG}; |
| use shared::ws2def::IOC_VENDOR; |
| use um::winnt::{LONG, PVOID, ULONGLONG}; |
| pub const SIO_SET_COMPATIBILITY_MODE: DWORD = _WSAIOW!(IOC_VENDOR, 300); |
| ENUM!{enum WSA_COMPATIBILITY_BEHAVIOR_ID { |
| WsaBehaviorAll = 0, |
| WsaBehaviorReceiveBuffering, |
| WsaBehaviorAutoTuning, |
| }} |
| pub type PWSA_COMPATIBILITY_BEHAVIOR_ID = *mut WSA_COMPATIBILITY_BEHAVIOR_ID; |
| STRUCT!{struct WSA_COMPATIBILITY_MODE { |
| BehaviorId: WSA_COMPATIBILITY_BEHAVIOR_ID, |
| TargetOsVersion: ULONG, |
| }} |
| pub type PWSA_COMPATIBILITY_MODE = *mut WSA_COMPATIBILITY_MODE; |
| pub type RIO_BUFFERID = PVOID; |
| pub type PRIO_BUFFERID = *mut PVOID; |
| pub type RIO_CQ = PVOID; |
| pub type PRIO_CQ = *mut PVOID; |
| pub type RIO_RQ = PVOID; |
| pub type PRIO_RQ = *mut PVOID; |
| STRUCT!{struct RIORESULT { |
| Status: LONG, |
| BytesTransferred: ULONG, |
| SocketContext: ULONGLONG, |
| RequestContext: ULONGLONG, |
| }} |
| pub type PRIORESULT = *mut RIORESULT; |
| STRUCT!{struct RIO_BUF { |
| BufferId: RIO_BUFFERID, |
| Offset: ULONG, |
| Length: ULONG, |
| }} |
| pub type PRIO_BUF = *mut RIO_BUF; |
| pub const RIO_MSG_DONT_NOTIFY: DWORD = 0x00000001; |
| pub const RIO_MSG_DEFER: DWORD = 0x00000002; |
| pub const RIO_MSG_WAITALL: DWORD = 0x00000004; |
| pub const RIO_MSG_COMMIT_ONLY: DWORD = 0x00000008; |
| pub const RIO_INVALID_BUFFERID: RIO_BUFFERID = 0xFFFFFFFF as RIO_BUFFERID; |
| pub const RIO_INVALID_CQ: RIO_CQ = 0 as RIO_CQ; |
| pub const RIO_INVALID_RQ: RIO_RQ = 0 as RIO_RQ; |
| pub const RIO_MAX_CQ_SIZE: DWORD = 0x8000000; |
| pub const RIO_CORRUPT_CQ: ULONG = 0xFFFFFFFF; |