Data Structures |
| struct | PWSK_SOCKET |
| struct | PWSK_BUF |
| struct | PWSK_INSPECT_ID |
| struct | PWSK_DATAGRAM_INDICATION |
| struct | PWSK_DATA_INDICATION |
| struct | PWSK_CLIENT_CONNECTION_DISPATCH |
| struct | PWSK_PROVIDER_BASIC_DISPATCH |
| struct | PWSK_PROVIDER_LISTEN_DISPATCH |
| struct | PWSK_BUF_LIST |
| struct | PWSK_PROVIDER_DATAGRAM_DISPATCH |
| struct | PWSK_PROVIDER_CONNECTION_DISPATCH |
| struct | PWSK_TDI_MAP |
| struct | PWSK_TDI_MAP_INFO |
| struct | PWSK_EVENT_CALLBACK_CONTROL |
| struct | PWSK_EXTENSION_CONTROL_IN |
| struct | PWSK_EXTENSION_CONTROL_OUT |
| struct | PWSK_CLIENT_DISPATCH |
| struct | PWSK_CLIENT_LISTEN_DISPATCH |
| struct | PWSK_CLIENT_DATAGRAM_DISPATCH |
| struct | PWSK_PROVIDER_DISPATCH |
| struct | PWSK_CLIENT_NPI |
| struct | PWSK_PROVIDER_NPI |
| struct | PWSK_REGISTRATION |
| struct | PWSK_PROVIDER_CHARACTERISTICS |
| struct | PWSK_TRANSPORT |
Defines |
| #define | _WSK_ |
| #define | WSKAPI NTAPI |
| #define | MAKE_WSK_VERSION(Mj, Mn) ((USHORT)((Mj) << 8) | (USHORT)((Mn) & 0xff)) |
| #define | WSK_MAJOR_VERSION(V) ((UCHAR)((V) >> 8)) |
| #define | WSK_MINOR_VERSION(V) ((UCHAR)(V)) |
| #define | WSK_FLAG_AT_DISPATCH_LEVEL 0x00000008 |
| #define | WSK_FLAG_RELEASE_ASAP 0x00000002 |
| #define | WSK_FLAG_ENTIRE_MESSAGE 0x00000004 |
| #define | WSK_FLAG_ABORTIVE 0x00000001 |
| #define | WSK_FLAG_BASIC_SOCKET 0x00000000 |
| #define | WSK_FLAG_LISTEN_SOCKET 0x00000001 |
| #define | WSK_FLAG_CONNECTION_SOCKET 0x00000002 |
| #define | WSK_FLAG_DATAGRAM_SOCKET 0x00000004 |
| #define | WSK_TRANSPORT_LIST_QUERY 2 |
| #define | WSK_TRANSPORT_LIST_CHANGE 3 |
| #define | WSK_CACHE_SD 4 |
| #define | WSK_RELEASE_SD 5 |
| #define | WSK_TDI_DEVICENAME_MAPPING 6 |
| #define | WSK_SET_STATIC_EVENT_CALLBACKS 7 |
| #define | WSK_TDI_BEHAVIOR 8 |
| #define | WSK_TDI_BEHAVIOR_BYPASS_TDI 0x00000001 |
| #define | SO_WSK_SECURITY (WSK_SO_BASE+1) |
| #define | SO_WSK_EVENT_CALLBACK (WSK_SO_BASE+2) |
| #define | WSK_EVENT_RECEIVE_FROM 0x00000100 |
| #define | WSK_EVENT_ACCEPT 0x00000200 |
| #define | WSK_EVENT_SEND_BACKLOG 0x00000010 |
| #define | WSK_EVENT_RECEIVE 0x00000040 |
| #define | WSK_EVENT_DISCONNECT 0x00000080 |
| #define | WSK_EVENT_DISABLE 0x80000000 |
| #define | SIO_WSK_SET_REMOTE_ADDRESS _WSAIOW(IOC_WSK,0x1) |
| #define | SIO_WSK_REGISTER_EXTENSION _WSAIORW(IOC_WSK,0x2) |
| #define | SIO_WSK_QUERY_IDEAL_SEND_BACKLOG _WSAIOR(IOC_WSK,0x3) |
| #define | SIO_WSK_QUERY_RECEIVE_BACKLOG _WSAIOR(IOC_WSK,0x4) |
| #define | SIO_WSK_QUERY_INSPECT_ID _WSAIOR(IOC_WSK,0x5) |
| #define | SIO_WSK_SET_SENDTO_ADDRESS _WSAIOW(IOC_WSK,0x6) |
| #define | WSK_FLAG_NODELAY 0x00000002 |
| #define | WSK_FLAG_WAITALL 0x00000002 |
| #define | WSK_FLAG_DRAIN 0x00000004 |
| #define | WSK_NO_WAIT 0 |
| #define | WSK_INFINITE_WAIT 0xffffffff |
Typedefs |
| typedef enum WSK_INSPECT_ACTION * | PWSK_INSPECT_ACTION |
typedef enum
WSK_CONTROL_SOCKET_TYPE * | PWSK_CONTROL_SOCKET_TYPE |
| typedef PVOID | PWSK_CLIENT |
typedef _Must_inspect_result_
NTSTATUS(WSKAPI * | PFN_WSK_RECEIVE_FROM_EVENT )(_In_opt_ PVOID SocketContext, _In_ ULONG Flags, _In_opt_ PWSK_DATAGRAM_INDICATION DataIndication) |
typedef _Must_inspect_result_
NTSTATUS(WSKAPI * | PFN_WSK_RECEIVE_EVENT )(_In_opt_ PVOID SocketContext, _In_ ULONG Flags, _In_opt_ PWSK_DATA_INDICATION DataIndication, _In_ SIZE_T BytesIndicated, _Inout_ SIZE_T *BytesAccepted) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_DISCONNECT_EVENT )(_In_opt_ PVOID SocketContext, _In_ ULONG Flags) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_SEND_BACKLOG_EVENT )(_In_opt_ PVOID SocketContext, _In_ SIZE_T IdealBacklogSize) |
| typedef _Must_inspect_result_ | _At_ (AcceptSocket, __drv_aliasesMem) NTSTATUS(WSKAPI *PFN_WSK_ACCEPT_EVENT)(_In_opt_ PVOID SocketContext |
typedef _Must_inspect_result_
_In_ ULONG | Flags |
typedef _Must_inspect_result_
_In_ ULONG _In_ PSOCKADDR | LocalAddress |
typedef _Must_inspect_result_
_In_ ULONG _In_ PSOCKADDR _In_
PSOCKADDR | RemoteAddress |
typedef _Must_inspect_result_
_In_ ULONG _In_ PSOCKADDR _In_
PSOCKADDR _In_opt_ PWSK_SOCKET | AcceptSocket |
typedef _Must_inspect_result_
_In_ ULONG _In_ PSOCKADDR _In_
PSOCKADDR _In_opt_ PWSK_SOCKET
_Outptr_result_maybenull_
PVOID * | AcceptSocketContext |
typedef _Must_inspect_result_
_In_ ULONG _In_ PSOCKADDR _In_
PSOCKADDR _In_opt_ PWSK_SOCKET
_Outptr_result_maybenull_
PVOID
_Outptr_result_maybenull_
const
WSK_CLIENT_CONNECTION_DISPATCH ** | AcceptSocketDispatch |
| typedef _In_ USHORT | SocketType |
| typedef _In_ USHORT _In_ ULONG | Protocol |
typedef _In_ USHORT _In_ ULONG
_In_ PSOCKADDR _In_ PSOCKADDR
_Reserved_ ULONG _In_opt_
PVOID | SocketContext |
typedef _In_ USHORT _In_ ULONG
_In_ PSOCKADDR _In_ PSOCKADDR
_Reserved_ ULONG _In_opt_
PVOID _In_opt_ const
WSK_CLIENT_CONNECTION_DISPATCH * | Dispatch |
typedef _In_ USHORT _In_ ULONG
_In_ PSOCKADDR _In_ PSOCKADDR
_Reserved_ ULONG _In_opt_
PVOID _In_opt_ const
WSK_CLIENT_CONNECTION_DISPATCH
_In_opt_ PEPROCESS | OwningProcess |
typedef _In_ USHORT _In_ ULONG
_In_ PSOCKADDR _In_ PSOCKADDR
_Reserved_ ULONG _In_opt_
PVOID _In_opt_ const
WSK_CLIENT_CONNECTION_DISPATCH
_In_opt_ PEPROCESS _In_opt_
PETHREAD | OwningThread |
typedef _In_ USHORT _In_ ULONG
_In_ PSOCKADDR _In_ PSOCKADDR
_Reserved_ ULONG _In_opt_
PVOID _In_opt_ const
WSK_CLIENT_CONNECTION_DISPATCH
_In_opt_ PEPROCESS _In_opt_
PETHREAD _In_opt_
PSECURITY_DESCRIPTOR | SecurityDescriptor |
typedef _In_ USHORT _In_ ULONG
_In_ PSOCKADDR _In_ PSOCKADDR
_Reserved_ ULONG _In_opt_
PVOID _In_opt_ const
WSK_CLIENT_CONNECTION_DISPATCH
_In_opt_ PEPROCESS _In_opt_
PETHREAD _In_opt_
PSECURITY_DESCRIPTOR _Inout_
PIRP | Irp |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_CONTROL_SOCKET )(_In_ PWSK_SOCKET Socket, _In_ WSK_CONTROL_SOCKET_TYPE RequestType, _In_ ULONG ControlCode, _In_ ULONG Level, _In_ SIZE_T InputSize, _In_reads_bytes_opt_(InputSize) PVOID InputBuffer, _In_ SIZE_T OutputSize, _Out_writes_bytes_opt_(OutputSize) PVOID OutputBuffer, _Out_opt_ SIZE_T *OutputSizeReturned, _Inout_opt_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_INSPECT_COMPLETE )(_In_ PWSK_SOCKET ListenSocket, _In_ PWSK_INSPECT_ID InspectID, _In_ WSK_INSPECT_ACTION Action, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_GET_LOCAL_ADDRESS )(_In_ PWSK_SOCKET Socket, _Out_ PSOCKADDR LocalAddress, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_SEND_MESSAGES )(_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF_LIST BufferList, _Reserved_ ULONG Flags, _In_opt_ PSOCKADDR RemoteAddress, _In_ ULONG ControlInfoLength, _In_reads_bytes_opt_(ControlInfoLength) PCMSGHDR ControlInfo, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_GET_REMOTE_ADDRESS )(_In_ PWSK_SOCKET Socket, _Out_ PSOCKADDR RemoteAddress, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_SEND )(_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_RECEIVE )(_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_DISCONNECT )(_In_ PWSK_SOCKET Socket, _In_opt_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_RELEASE_DATA_INDICATION_LIST )(_In_ PWSK_SOCKET Socket, _In_ PWSK_DATA_INDICATION DataIndication) |
typedef _Must_inspect_result_
WSK_INSPECT_ACTION(WSKAPI * | PFN_WSK_INSPECT_EVENT )(_In_opt_ PVOID SocketContext, _In_ PSOCKADDR LocalAddress, _In_ PSOCKADDR RemoteAddress, _In_opt_ PWSK_INSPECT_ID InspectID) |
| typedef _In_ PWSK_INSPECT_ID | InspectID |
| typedef _In_ ADDRESS_FAMILY | AddressFamily |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_CONTROL_CLIENT )(_In_ PWSK_CLIENT Client, _In_ ULONG ControlCode, _In_ SIZE_T InputSize, _In_reads_bytes_opt_(InputSize) PVOID InputBuffer, _In_ SIZE_T OutputSize, _Out_writes_bytes_opt_(OutputSize) PVOID OutputBuffer, _Out_opt_ SIZE_T *OutputSizeReturned, _Inout_opt_ PIRP Irp) |
typedef _At_(*)(_In_
PWSK_CLIENT Client, _In_opt_
PUNICODE_STRING NodeName,
_In_opt_ PUNICODE_STRING
ServiceName, _In_opt_ ULONG
NameSpace, _In_opt_ GUID
*Provider, _In_opt_
PADDRINFOEXW Hints, _Outptr_
PADDRINFOEXW *Result, _In_opt_
PEPROCESS OwningProcess,
_In_opt_ PETHREAD OwningThread,
_Inout_ PIRP Irp | Result )(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_GET_NAME_INFO )(_In_ PWSK_CLIENT Client, _In_ PSOCKADDR SockAddr, _In_ ULONG SockAddrLength, _Out_opt_ PUNICODE_STRING NodeName, _Out_opt_ PUNICODE_STRING ServiceName, _In_ ULONG Flags, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp) |
| typedef _In_ PADDRINFOEXW | AddrInfo |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_SEND_TO )(_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF Buffer, _Reserved_ ULONG Flags, _In_opt_ PSOCKADDR RemoteAddress, _In_ ULONG ControlInfoLength, _In_reads_bytes_opt_(ControlInfoLength) PCMSGHDR ControlInfo, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_RECEIVE_FROM )(_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF Buffer, _Reserved_ ULONG Flags, _Out_opt_ PSOCKADDR RemoteAddress, _Inout_ PULONG ControlLength, _Out_writes_bytes_opt_(*ControlLength) PCMSGHDR ControlInfo, _Out_opt_ PULONG ControlFlags, _Inout_ PIRP Irp) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_RELEASE_DATAGRAM_INDICATION_LIST )(_In_ PWSK_SOCKET Socket, _In_ PWSK_DATAGRAM_INDICATION DatagramIndication) |
| typedef NTSTATUS(WSKAPI * | PFN_WSK_CLIENT_EVENT )(_In_opt_ PVOID ClientContext, _In_ ULONG EventType, _In_reads_bytes_opt_(InformationLength) PVOID Information, _In_ SIZE_T InformationLength) |
Enumerations |
| enum | WSK_INSPECT_ACTION { WskInspectReject,
WskInspectAccept,
WskInspectPend,
WskInspectMax
} |
| enum | WSK_CONTROL_SOCKET_TYPE { WskSetOption,
WskGetOption,
WskIoctl,
WskControlMax
} |
Functions |
| typedef | _At_ (Irp->IoStatus.Information, __drv_allocatesMem(Mem)) NTSTATUS(WSKAPI *PFN_WSK_SOCKET_CONNECT)(_In_ PWSK_CLIENT Client |
| typedef | _At_ (Socket, __drv_freesMem(Mem)) NTSTATUS(WSKAPI *PFN_WSK_CLOSE_SOCKET)(_In_ PWSK_SOCKET Socket |
| typedef | NTSTATUS (WSKAPI *PFN_WSK_BIND)(_In_ PWSK_SOCKET Socket |
| typedef | _At_ (AddrInfo, __drv_freesMem(Mem)) VOID(WSKAPI *PFN_WSK_FREE_ADDRESS_INFO)(_In_ PWSK_CLIENT Client |
| _Must_inspect_result_ NTSTATUS | WskRegister (_In_ PWSK_CLIENT_NPI WskClientNpi, _Out_ PWSK_REGISTRATION WskRegistration) |
| _Must_inspect_result_ NTSTATUS | WskCaptureProviderNPI (_In_ PWSK_REGISTRATION WskRegistration, _In_ ULONG WaitTimeout, _Out_ PWSK_PROVIDER_NPI WskProviderNpi) |
| VOID | WskReleaseProviderNPI (_In_ PWSK_REGISTRATION WskRegistration) |
| _Must_inspect_result_ NTSTATUS | WskQueryProviderCharacteristics (_In_ PWSK_REGISTRATION WskRegistration, _Out_ PWSK_PROVIDER_CHARACTERISTICS WskProviderCharacteristics) |
| VOID | WskDeregister (_In_ PWSK_REGISTRATION WskRegistration) |
Variables |
| CONST NPIID | NPI_WSK_INTERFACE_ID |