pub const REQUEST = extern struct {
Handle: extern union {
AddressHandle: HANDLE,
ConnectionContext: CONNECTION.CONTEXT,
ControlChannel: HANDLE,
},
RequestNotifyObject: PVOID,
RequestContext: PVOID,
TdiStatus: TDI.STATUS,
pub const STATUS = extern struct {
/// status of request completion
Status: TDI.STATUS,
/// the request context
RequestContext: PVOID,
/// number of bytes transferred in the request
BytesTransferred: ULONG,
};
pub const ASSOCIATE = extern struct {
Request: REQUEST,
AddressHandle: HANDLE,
};
pub const CONNECT = extern struct {
Request: REQUEST,
RequestConnectionInformation: *CONNECTION.INFORMATION,
ReturnConnectionInformation: *CONNECTION.INFORMATION,
Timeout: LARGE_INTEGER,
};
pub const ACCEPT = extern struct {
Request: REQUEST,
RequestConnectionInformation: *CONNECTION.INFORMATION,
ReturnConnectionInformation: *CONNECTION.INFORMATION,
};
pub const LISTEN = extern struct {
Request: REQUEST,
RequestConnectionInformation: *CONNECTION.INFORMATION,
ReturnConnectionInformation: *CONNECTION.INFORMATION,
ListenFlags: USHORT,
};
pub const DISCONNECT = extern struct {
Request: REQUEST,
Timeout: LARGE_INTEGER,
};
pub const SEND = extern struct {
Request: REQUEST,
SendFlags: USHORT,
};
pub const RECEIVE = extern struct {
Request: REQUEST,
ReceiveFlags: USHORT,
};
pub const SEND_DATAGRAM = extern struct {
Request: REQUEST,
SendDatagramInformation: *CONNECTION.INFORMATION,
};
}