ReactOS  0.4.13-dev-257-gfabbd7c
wsk.h File Reference
#include <netioddk.h>
#include <ws2def.h>
#include <mswsockdef.h>
Include dependency graph for wsk.h:

Go to the source code of this file.

Classes

struct  _WSK_SOCKET
 
struct  _WSK_BUF
 
struct  _WSK_INSPECT_ID
 
struct  _WSK_DATAGRAM_INDICATION
 
struct  _WSK_DATA_INDICATION
 
struct  _WSK_CLIENT_CONNECTION_DISPATCH
 
struct  _WSK_PROVIDER_BASIC_DISPATCH
 
struct  _WSK_PROVIDER_LISTEN_DISPATCH
 
struct  _WSK_BUF_LIST
 
struct  _WSK_PROVIDER_DATAGRAM_DISPATCH
 
struct  _WSK_PROVIDER_CONNECTION_DISPATCH
 
struct  _WSK_TDI_MAP
 
struct  _WSK_TDI_MAP_INFO
 
struct  _WSK_EVENT_CALLBACK_CONTROL
 
struct  _WSK_EXTENSION_CONTROL_IN
 
struct  _WSK_EXTENSION_CONTROL_OUT
 
struct  _WSK_CLIENT_DISPATCH
 
struct  _WSK_CLIENT_LISTEN_DISPATCH
 
struct  _WSK_CLIENT_DATAGRAM_DISPATCH
 
struct  _WSK_PROVIDER_DISPATCH
 
struct  _WSK_CLIENT_NPI
 
struct  _WSK_PROVIDER_NPI
 
struct  _WSK_REGISTRATION
 
struct  _WSK_PROVIDER_CHARACTERISTICS
 
struct  _WSK_TRANSPORT
 

Macros

#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_ACTIONPWSK_INSPECT_ACTION
 
typedef enum WSK_CONTROL_SOCKET_TYPEPWSK_CONTROL_SOCKET_TYPE
 
typedef PVOID PWSK_CLIENT
 
typedef struct _WSK_SOCKET WSK_SOCKET
 
typedef struct _WSK_SOCKETPWSK_SOCKET
 
typedef struct _WSK_BUF WSK_BUF
 
typedef struct _WSK_BUFPWSK_BUF
 
typedef struct _WSK_INSPECT_ID WSK_INSPECT_ID
 
typedef struct _WSK_INSPECT_IDPWSK_INSPECT_ID
 
typedef struct _WSK_DATAGRAM_INDICATION WSK_DATAGRAM_INDICATION
 
typedef struct _WSK_DATAGRAM_INDICATIONPWSK_DATAGRAM_INDICATION
 
typedef _Must_inspect_result_ NTSTATUS(WSKAPIPFN_WSK_RECEIVE_FROM_EVENT) (_In_opt_ PVOID SocketContext, _In_ ULONG Flags, _In_opt_ PWSK_DATAGRAM_INDICATION DataIndication)
 
typedef struct _WSK_DATA_INDICATION WSK_DATA_INDICATION
 
typedef struct _WSK_DATA_INDICATIONPWSK_DATA_INDICATION
 
typedef _Must_inspect_result_ NTSTATUS(WSKAPIPFN_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(WSKAPIPFN_WSK_DISCONNECT_EVENT) (_In_opt_ PVOID SocketContext, _In_ ULONG Flags)
 
typedef NTSTATUS(WSKAPIPFN_WSK_SEND_BACKLOG_EVENT) (_In_opt_ PVOID SocketContext, _In_ SIZE_T IdealBacklogSize)
 
typedef struct _WSK_CLIENT_CONNECTION_DISPATCH WSK_CLIENT_CONNECTION_DISPATCH
 
typedef struct _WSK_CLIENT_CONNECTION_DISPATCHPWSK_CLIENT_CONNECTION_DISPATCH
 
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 = FSRTL_FLAG_ADVANCED_HEADER
 
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_ PVOIDAcceptSocketContext
 
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_DISPATCHDispatch
 
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(WSKAPIPFN_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 struct _WSK_PROVIDER_BASIC_DISPATCH WSK_PROVIDER_BASIC_DISPATCH
 
typedef struct _WSK_PROVIDER_BASIC_DISPATCHPWSK_PROVIDER_BASIC_DISPATCH
 
typedef NTSTATUS(WSKAPIPFN_WSK_BIND) (_In_ PWSK_SOCKET Socket, _In_ PSOCKADDR LocalAddress, _Reserved_ ULONG Flags, _Inout_ PIRP Irp)
 
typedef NTSTATUS(WSKAPIPFN_WSK_INSPECT_COMPLETE) (_In_ PWSK_SOCKET ListenSocket, _In_ PWSK_INSPECT_ID InspectID, _In_ WSK_INSPECT_ACTION Action, _Inout_ PIRP Irp)
 
typedef NTSTATUS(WSKAPIPFN_WSK_GET_LOCAL_ADDRESS) (_In_ PWSK_SOCKET Socket, _Out_ PSOCKADDR LocalAddress, _Inout_ PIRP Irp)
 
typedef struct _WSK_PROVIDER_LISTEN_DISPATCH WSK_PROVIDER_LISTEN_DISPATCH
 
typedef struct _WSK_PROVIDER_LISTEN_DISPATCHPWSK_PROVIDER_LISTEN_DISPATCH
 
typedef struct _WSK_BUF_LIST WSK_BUF_LIST
 
typedef struct _WSK_BUF_LISTPWSK_BUF_LIST
 
typedef NTSTATUS(WSKAPIPFN_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 struct _WSK_PROVIDER_DATAGRAM_DISPATCH WSK_PROVIDER_DATAGRAM_DISPATCH
 
typedef struct _WSK_PROVIDER_DATAGRAM_DISPATCHPWSK_PROVIDER_DATAGRAM_DISPATCH
 
typedef NTSTATUS(WSKAPIPFN_WSK_CONNECT) (_In_ PWSK_SOCKET Socket, _In_ PSOCKADDR RemoteAddress, _Reserved_ ULONG Flags, _Inout_ PIRP Irp)
 
typedef NTSTATUS(WSKAPIPFN_WSK_GET_REMOTE_ADDRESS) (_In_ PWSK_SOCKET Socket, _Out_ PSOCKADDR RemoteAddress, _Inout_ PIRP Irp)
 
typedef NTSTATUS(WSKAPIPFN_WSK_SEND) (_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp)
 
typedef NTSTATUS(WSKAPIPFN_WSK_RECEIVE) (_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp)
 
typedef NTSTATUS(WSKAPIPFN_WSK_DISCONNECT) (_In_ PWSK_SOCKET Socket, _In_opt_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp)
 
typedef NTSTATUS(WSKAPIPFN_WSK_RELEASE_DATA_INDICATION_LIST) (_In_ PWSK_SOCKET Socket, _In_ PWSK_DATA_INDICATION DataIndication)
 
typedef struct _WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_CONNECTION_DISPATCH
 
typedef struct _WSK_PROVIDER_CONNECTION_DISPATCHPWSK_PROVIDER_CONNECTION_DISPATCH
 
typedef _Must_inspect_result_ WSK_INSPECT_ACTION(WSKAPIPFN_WSK_INSPECT_EVENT) (_In_opt_ PVOID SocketContext, _In_ PSOCKADDR LocalAddress, _In_ PSOCKADDR RemoteAddress, _In_opt_ PWSK_INSPECT_ID InspectID)
 
typedef NTSTATUS(WSKAPIPFN_WSK_ABORT_EVENT) (_In_opt_ PVOID SocketContext, _In_ PWSK_INSPECT_ID InspectID)
 
typedef _In_ ADDRESS_FAMILY AddressFamily
 
typedef struct _WSK_TDI_MAP WSK_TDI_MAP
 
typedef struct _WSK_TDI_MAPPWSK_TDI_MAP
 
typedef struct _WSK_TDI_MAP_INFO WSK_TDI_MAP_INFO
 
typedef struct _WSK_TDI_MAP_INFOPWSK_TDI_MAP_INFO
 
typedef NTSTATUS(WSKAPIPFN_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(WSKAPIPFN_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 struct _WSK_EVENT_CALLBACK_CONTROL WSK_EVENT_CALLBACK_CONTROL
 
typedef struct _WSK_EVENT_CALLBACK_CONTROLPWSK_EVENT_CALLBACK_CONTROL
 
typedef struct _WSK_EXTENSION_CONTROL_IN WSK_EXTENSION_CONTROL_IN
 
typedef struct _WSK_EXTENSION_CONTROL_INPWSK_EXTENSION_CONTROL_IN
 
typedef struct _WSK_EXTENSION_CONTROL_OUT WSK_EXTENSION_CONTROL_OUT
 
typedef struct _WSK_EXTENSION_CONTROL_OUTPWSK_EXTENSION_CONTROL_OUT
 
typedef NTSTATUS(WSKAPIPFN_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(WSKAPIPFN_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(WSKAPIPFN_WSK_RELEASE_DATAGRAM_INDICATION_LIST) (_In_ PWSK_SOCKET Socket, _In_ PWSK_DATAGRAM_INDICATION DatagramIndication)
 
typedef NTSTATUS(WSKAPIPFN_WSK_CLIENT_EVENT) (_In_opt_ PVOID ClientContext, _In_ ULONG EventType, _In_reads_bytes_opt_(InformationLength) PVOID Information, _In_ SIZE_T InformationLength)
 
typedef struct _WSK_CLIENT_DISPATCH WSK_CLIENT_DISPATCH
 
typedef struct _WSK_CLIENT_DISPATCHPWSK_CLIENT_DISPATCH
 
typedef struct _WSK_CLIENT_LISTEN_DISPATCH WSK_CLIENT_LISTEN_DISPATCH
 
typedef struct _WSK_CLIENT_LISTEN_DISPATCHPWSK_CLIENT_LISTEN_DISPATCH
 
typedef struct _WSK_CLIENT_DATAGRAM_DISPATCH WSK_CLIENT_DATAGRAM_DISPATCH
 
typedef struct _WSK_CLIENT_DATAGRAM_DISPATCHPWSK_CLIENT_DATAGRAM_DISPATCH
 
typedef struct _WSK_PROVIDER_DISPATCH WSK_PROVIDER_DISPATCH
 
typedef struct _WSK_PROVIDER_DISPATCHPWSK_PROVIDER_DISPATCH
 
typedef struct _WSK_CLIENT_NPI WSK_CLIENT_NPI
 
typedef struct _WSK_CLIENT_NPIPWSK_CLIENT_NPI
 
typedef struct _WSK_PROVIDER_NPI WSK_PROVIDER_NPI
 
typedef struct _WSK_PROVIDER_NPIPWSK_PROVIDER_NPI
 
typedef struct _WSK_REGISTRATION WSK_REGISTRATION
 
typedef struct _WSK_REGISTRATIONPWSK_REGISTRATION
 
typedef struct _WSK_PROVIDER_CHARACTERISTICS WSK_PROVIDER_CHARACTERISTICS
 
typedef struct _WSK_PROVIDER_CHARACTERISTICSPWSK_PROVIDER_CHARACTERISTICS
 
typedef struct _WSK_TRANSPORT WSK_TRANSPORT
 
typedef struct _WSK_TRANSPORTPWSK_TRANSPORT
 

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 _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
 

Macro Definition Documentation

◆ _WSK_

#define _WSK_

Definition at line 23 of file wsk.h.

◆ MAKE_WSK_VERSION

#define MAKE_WSK_VERSION (   Mj,
  Mn 
)    ((USHORT)((Mj) << 8) | (USHORT)((Mn) & 0xff))

Definition at line 37 of file wsk.h.

◆ SIO_WSK_QUERY_IDEAL_SEND_BACKLOG

#define SIO_WSK_QUERY_IDEAL_SEND_BACKLOG   _WSAIOR(IOC_WSK,0x3)

Definition at line 66 of file wsk.h.

◆ SIO_WSK_QUERY_INSPECT_ID

#define SIO_WSK_QUERY_INSPECT_ID   _WSAIOR(IOC_WSK,0x5)

Definition at line 68 of file wsk.h.

◆ SIO_WSK_QUERY_RECEIVE_BACKLOG

#define SIO_WSK_QUERY_RECEIVE_BACKLOG   _WSAIOR(IOC_WSK,0x4)

Definition at line 67 of file wsk.h.

◆ SIO_WSK_REGISTER_EXTENSION

#define SIO_WSK_REGISTER_EXTENSION   _WSAIORW(IOC_WSK,0x2)

Definition at line 65 of file wsk.h.

◆ SIO_WSK_SET_REMOTE_ADDRESS

#define SIO_WSK_SET_REMOTE_ADDRESS   _WSAIOW(IOC_WSK,0x1)

Definition at line 64 of file wsk.h.

◆ SIO_WSK_SET_SENDTO_ADDRESS

#define SIO_WSK_SET_SENDTO_ADDRESS   _WSAIOW(IOC_WSK,0x6)

Definition at line 69 of file wsk.h.

◆ SO_WSK_EVENT_CALLBACK

#define SO_WSK_EVENT_CALLBACK   (WSK_SO_BASE+2)

Definition at line 57 of file wsk.h.

◆ SO_WSK_SECURITY

#define SO_WSK_SECURITY   (WSK_SO_BASE+1)

Definition at line 56 of file wsk.h.

◆ WSK_CACHE_SD

#define WSK_CACHE_SD   4

Definition at line 50 of file wsk.h.

◆ WSK_EVENT_ACCEPT

#define WSK_EVENT_ACCEPT   0x00000200

Definition at line 59 of file wsk.h.

◆ WSK_EVENT_DISABLE

#define WSK_EVENT_DISABLE   0x80000000

Definition at line 63 of file wsk.h.

◆ WSK_EVENT_DISCONNECT

#define WSK_EVENT_DISCONNECT   0x00000080

Definition at line 62 of file wsk.h.

◆ WSK_EVENT_RECEIVE

#define WSK_EVENT_RECEIVE   0x00000040

Definition at line 61 of file wsk.h.

◆ WSK_EVENT_RECEIVE_FROM

#define WSK_EVENT_RECEIVE_FROM   0x00000100

Definition at line 58 of file wsk.h.

◆ WSK_EVENT_SEND_BACKLOG

#define WSK_EVENT_SEND_BACKLOG   0x00000010

Definition at line 60 of file wsk.h.

◆ WSK_FLAG_ABORTIVE

#define WSK_FLAG_ABORTIVE   0x00000001

Definition at line 43 of file wsk.h.

◆ WSK_FLAG_AT_DISPATCH_LEVEL

#define WSK_FLAG_AT_DISPATCH_LEVEL   0x00000008

Definition at line 40 of file wsk.h.

◆ WSK_FLAG_BASIC_SOCKET

#define WSK_FLAG_BASIC_SOCKET   0x00000000

Definition at line 44 of file wsk.h.

◆ WSK_FLAG_CONNECTION_SOCKET

#define WSK_FLAG_CONNECTION_SOCKET   0x00000002

Definition at line 46 of file wsk.h.

◆ WSK_FLAG_DATAGRAM_SOCKET

#define WSK_FLAG_DATAGRAM_SOCKET   0x00000004

Definition at line 47 of file wsk.h.

◆ WSK_FLAG_DRAIN

#define WSK_FLAG_DRAIN   0x00000004

Definition at line 72 of file wsk.h.

◆ WSK_FLAG_ENTIRE_MESSAGE

#define WSK_FLAG_ENTIRE_MESSAGE   0x00000004

Definition at line 42 of file wsk.h.

◆ WSK_FLAG_LISTEN_SOCKET

#define WSK_FLAG_LISTEN_SOCKET   0x00000001

Definition at line 45 of file wsk.h.

◆ WSK_FLAG_NODELAY

#define WSK_FLAG_NODELAY   0x00000002

Definition at line 70 of file wsk.h.

◆ WSK_FLAG_RELEASE_ASAP

#define WSK_FLAG_RELEASE_ASAP   0x00000002

Definition at line 41 of file wsk.h.

◆ WSK_FLAG_WAITALL

#define WSK_FLAG_WAITALL   0x00000002

Definition at line 71 of file wsk.h.

◆ WSK_INFINITE_WAIT

#define WSK_INFINITE_WAIT   0xffffffff

Definition at line 74 of file wsk.h.

◆ WSK_MAJOR_VERSION

#define WSK_MAJOR_VERSION (   V)    ((UCHAR)((V) >> 8))

Definition at line 38 of file wsk.h.

◆ WSK_MINOR_VERSION

#define WSK_MINOR_VERSION (   V)    ((UCHAR)(V))

Definition at line 39 of file wsk.h.

◆ WSK_NO_WAIT

#define WSK_NO_WAIT   0

Definition at line 73 of file wsk.h.

◆ WSK_RELEASE_SD

#define WSK_RELEASE_SD   5

Definition at line 51 of file wsk.h.

◆ WSK_SET_STATIC_EVENT_CALLBACKS

#define WSK_SET_STATIC_EVENT_CALLBACKS   7

Definition at line 53 of file wsk.h.

◆ WSK_TDI_BEHAVIOR

#define WSK_TDI_BEHAVIOR   8

Definition at line 54 of file wsk.h.

◆ WSK_TDI_BEHAVIOR_BYPASS_TDI

#define WSK_TDI_BEHAVIOR_BYPASS_TDI   0x00000001

Definition at line 55 of file wsk.h.

◆ WSK_TDI_DEVICENAME_MAPPING

#define WSK_TDI_DEVICENAME_MAPPING   6

Definition at line 52 of file wsk.h.

◆ WSK_TRANSPORT_LIST_CHANGE

#define WSK_TRANSPORT_LIST_CHANGE   3

Definition at line 49 of file wsk.h.

◆ WSK_TRANSPORT_LIST_QUERY

#define WSK_TRANSPORT_LIST_QUERY   2

Definition at line 48 of file wsk.h.

◆ WSKAPI

#define WSKAPI   NTAPI

Definition at line 35 of file wsk.h.

Typedef Documentation

◆ _At_

Definition at line 166 of file wsk.h.

◆ AcceptSocket

◆ AcceptSocketContext

Definition at line 170 of file wsk.h.

◆ AcceptSocketDispatch

◆ AddressFamily

Definition at line 386 of file wsk.h.

◆ AddrInfo

typedef _In_ PADDRINFOEXW AddrInfo

Definition at line 458 of file wsk.h.

◆ Dispatch

◆ Flags

◆ Irp

◆ LocalAddress

◆ OwningProcess

◆ OwningThread

◆ PFN_WSK_ABORT_EVENT

typedef NTSTATUS(WSKAPI * PFN_WSK_ABORT_EVENT) (_In_opt_ PVOID SocketContext, _In_ PWSK_INSPECT_ID InspectID)

Definition at line 377 of file wsk.h.

◆ PFN_WSK_BIND

Definition at line 223 of file wsk.h.

◆ PFN_WSK_CLIENT_EVENT

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)

Definition at line 512 of file wsk.h.

◆ PFN_WSK_CONNECT

Definition at line 306 of file wsk.h.

◆ PFN_WSK_CONTROL_CLIENT

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)

Definition at line 413 of file wsk.h.

◆ PFN_WSK_CONTROL_SOCKET

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)

Definition at line 196 of file wsk.h.

◆ PFN_WSK_DISCONNECT

typedef NTSTATUS(WSKAPI * PFN_WSK_DISCONNECT) (_In_ PWSK_SOCKET Socket, _In_opt_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp)

Definition at line 337 of file wsk.h.

◆ PFN_WSK_DISCONNECT_EVENT

typedef NTSTATUS(WSKAPI * PFN_WSK_DISCONNECT_EVENT) (_In_opt_ PVOID SocketContext, _In_ ULONG Flags)

Definition at line 147 of file wsk.h.

◆ PFN_WSK_GET_LOCAL_ADDRESS

typedef NTSTATUS(WSKAPI * PFN_WSK_GET_LOCAL_ADDRESS) (_In_ PWSK_SOCKET Socket, _Out_ PSOCKADDR LocalAddress, _Inout_ PIRP Irp)

Definition at line 251 of file wsk.h.

◆ PFN_WSK_GET_NAME_INFO

◆ PFN_WSK_GET_REMOTE_ADDRESS

typedef NTSTATUS(WSKAPI * PFN_WSK_GET_REMOTE_ADDRESS) (_In_ PWSK_SOCKET Socket, _Out_ PSOCKADDR RemoteAddress, _Inout_ PIRP Irp)

Definition at line 314 of file wsk.h.

◆ PFN_WSK_INSPECT_COMPLETE

typedef NTSTATUS(WSKAPI * PFN_WSK_INSPECT_COMPLETE) (_In_ PWSK_SOCKET ListenSocket, _In_ PWSK_INSPECT_ID InspectID, _In_ WSK_INSPECT_ACTION Action, _Inout_ PIRP Irp)

Definition at line 243 of file wsk.h.

◆ PFN_WSK_INSPECT_EVENT

◆ PFN_WSK_RECEIVE

typedef NTSTATUS(WSKAPI * PFN_WSK_RECEIVE) (_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp)

Definition at line 329 of file wsk.h.

◆ PFN_WSK_RECEIVE_EVENT

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)

Definition at line 138 of file wsk.h.

◆ PFN_WSK_RECEIVE_FROM

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)

Definition at line 494 of file wsk.h.

◆ PFN_WSK_RECEIVE_FROM_EVENT

Definition at line 124 of file wsk.h.

◆ PFN_WSK_RELEASE_DATA_INDICATION_LIST

typedef NTSTATUS(WSKAPI * PFN_WSK_RELEASE_DATA_INDICATION_LIST) (_In_ PWSK_SOCKET Socket, _In_ PWSK_DATA_INDICATION DataIndication)

Definition at line 345 of file wsk.h.

◆ PFN_WSK_RELEASE_DATAGRAM_INDICATION_LIST

typedef NTSTATUS(WSKAPI * PFN_WSK_RELEASE_DATAGRAM_INDICATION_LIST) (_In_ PWSK_SOCKET Socket, _In_ PWSK_DATAGRAM_INDICATION DatagramIndication)

Definition at line 506 of file wsk.h.

◆ PFN_WSK_SEND

typedef NTSTATUS(WSKAPI * PFN_WSK_SEND) (_In_ PWSK_SOCKET Socket, _In_ PWSK_BUF Buffer, _In_ ULONG Flags, _Inout_ PIRP Irp)

Definition at line 321 of file wsk.h.

◆ PFN_WSK_SEND_BACKLOG_EVENT

typedef NTSTATUS(WSKAPI * PFN_WSK_SEND_BACKLOG_EVENT) (_In_opt_ PVOID SocketContext, _In_ SIZE_T IdealBacklogSize)

Definition at line 153 of file wsk.h.

◆ PFN_WSK_SEND_MESSAGES

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)

Definition at line 277 of file wsk.h.

◆ PFN_WSK_SEND_TO

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)

Definition at line 483 of file wsk.h.

◆ Protocol

Definition at line 182 of file wsk.h.

◆ PWSK_BUF

◆ PWSK_BUF_LIST

◆ PWSK_CLIENT

typedef PVOID PWSK_CLIENT

Definition at line 92 of file wsk.h.

◆ PWSK_CLIENT_CONNECTION_DISPATCH

◆ PWSK_CLIENT_DATAGRAM_DISPATCH

◆ PWSK_CLIENT_DISPATCH

◆ PWSK_CLIENT_LISTEN_DISPATCH

◆ PWSK_CLIENT_NPI

◆ PWSK_CONTROL_SOCKET_TYPE

◆ PWSK_DATA_INDICATION

◆ PWSK_DATAGRAM_INDICATION

◆ PWSK_EVENT_CALLBACK_CONTROL

◆ PWSK_EXTENSION_CONTROL_IN

◆ PWSK_EXTENSION_CONTROL_OUT

◆ PWSK_INSPECT_ACTION

◆ PWSK_INSPECT_ID

◆ PWSK_PROVIDER_BASIC_DISPATCH

◆ PWSK_PROVIDER_CHARACTERISTICS

◆ PWSK_PROVIDER_CONNECTION_DISPATCH

◆ PWSK_PROVIDER_DATAGRAM_DISPATCH

◆ PWSK_PROVIDER_DISPATCH

◆ PWSK_PROVIDER_LISTEN_DISPATCH

◆ PWSK_PROVIDER_NPI

◆ PWSK_REGISTRATION

◆ PWSK_SOCKET

◆ PWSK_TDI_MAP

◆ PWSK_TDI_MAP_INFO

◆ PWSK_TRANSPORT

◆ RemoteAddress

◆ Result

Definition at line 426 of file wsk.h.

◆ SecurityDescriptor

◆ SocketContext

◆ SocketType

Definition at line 182 of file wsk.h.

◆ WSK_BUF

◆ WSK_BUF_LIST

◆ WSK_CLIENT_CONNECTION_DISPATCH

◆ WSK_CLIENT_DATAGRAM_DISPATCH

◆ WSK_CLIENT_DISPATCH

◆ WSK_CLIENT_LISTEN_DISPATCH

◆ WSK_CLIENT_NPI

◆ WSK_DATA_INDICATION

◆ WSK_DATAGRAM_INDICATION

◆ WSK_EVENT_CALLBACK_CONTROL

◆ WSK_EXTENSION_CONTROL_IN

◆ WSK_EXTENSION_CONTROL_OUT

◆ WSK_INSPECT_ID

◆ WSK_PROVIDER_BASIC_DISPATCH

◆ WSK_PROVIDER_CHARACTERISTICS

◆ WSK_PROVIDER_CONNECTION_DISPATCH

◆ WSK_PROVIDER_DATAGRAM_DISPATCH

◆ WSK_PROVIDER_DISPATCH

◆ WSK_PROVIDER_LISTEN_DISPATCH

◆ WSK_PROVIDER_NPI

◆ WSK_REGISTRATION

◆ WSK_SOCKET

◆ WSK_TDI_MAP

◆ WSK_TDI_MAP_INFO

◆ WSK_TRANSPORT

Enumeration Type Documentation

◆ WSK_CONTROL_SOCKET_TYPE

Enumerator
WskSetOption 
WskGetOption 
WskIoctl 
WskControlMax 

Definition at line 84 of file wsk.h.

85 {
88  WskIoctl,
Definition: wsk.h:88
enum WSK_CONTROL_SOCKET_TYPE * PWSK_CONTROL_SOCKET_TYPE
WSK_CONTROL_SOCKET_TYPE
Definition: wsk.h:84

◆ WSK_INSPECT_ACTION

Enumerator
WskInspectReject 
WskInspectAccept 
WskInspectPend 
WskInspectMax 

Definition at line 76 of file wsk.h.

77 {
WSK_INSPECT_ACTION
Definition: wsk.h:76
enum WSK_INSPECT_ACTION * PWSK_INSPECT_ACTION

Function Documentation

◆ _At_() [1/3]

typedef _At_ ( Irp->IoStatus.  Information,
__drv_allocatesMem(Mem)   
)

◆ _At_() [2/3]

typedef _At_ ( Socket  ,
__drv_freesMem(Mem)   
)

◆ _At_() [3/3]

typedef _At_ ( AddrInfo  ,
__drv_freesMem(Mem)   
)

◆ WskCaptureProviderNPI()

_Must_inspect_result_ NTSTATUS WskCaptureProviderNPI ( _In_ PWSK_REGISTRATION  WskRegistration,
_In_ ULONG  WaitTimeout,
_Out_ PWSK_PROVIDER_NPI  WskProviderNpi 
)

◆ WskDeregister()

VOID WskDeregister ( _In_ PWSK_REGISTRATION  WskRegistration)

◆ WskQueryProviderCharacteristics()

_Must_inspect_result_ NTSTATUS WskQueryProviderCharacteristics ( _In_ PWSK_REGISTRATION  WskRegistration,
_Out_ PWSK_PROVIDER_CHARACTERISTICS  WskProviderCharacteristics 
)

◆ WskRegister()

_Must_inspect_result_ NTSTATUS WskRegister ( _In_ PWSK_CLIENT_NPI  WskClientNpi,
_Out_ PWSK_REGISTRATION  WskRegistration 
)

◆ WskReleaseProviderNPI()

VOID WskReleaseProviderNPI ( _In_ PWSK_REGISTRATION  WskRegistration)

Variable Documentation

◆ NPI_WSK_INTERFACE_ID

CONST NPIID NPI_WSK_INTERFACE_ID