|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1992 Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: WsaHelp.h ! 8: ! 9: Abstract: ! 10: ! 11: This header file contains prototypes required for Windows Sockets ! 12: Helper DLLs. The helper DLLs allow the Windows Sockets DLL to be ! 13: transport independent by suppling the necessary option get/set and ! 14: address conversion routines for an individual transport or transport ! 15: family. ! 16: ! 17: Author: ! 18: ! 19: David Treadwell (davidtr) 15-Jul-1992 ! 20: ! 21: Revision History: ! 22: ! 23: --*/ ! 24: ! 25: // ! 26: // Notification event definitions. A helper DLL returns a mask of the ! 27: // events for which it wishes to be notified, and the Windows Sockets ! 28: // DLL calls the helper DLL in WSHNotify for each requested event. ! 29: // ! 30: ! 31: #define WSH_NOTIFY_BIND 0x01 ! 32: #define WSH_NOTIFY_LISTEN 0x02 ! 33: #define WSH_NOTIFY_CONNECT 0x04 ! 34: #define WSH_NOTIFY_ACCEPT 0x08 ! 35: #define WSH_NOTIFY_SHUTDOWN_RECEIVE 0x10 ! 36: #define WSH_NOTIFY_SHUTDOWN_SEND 0x20 ! 37: #define WSH_NOTIFY_SHUTDOWN_ALL 0x40 ! 38: #define WSH_NOTIFY_CLOSE 0x80 ! 39: ! 40: // ! 41: // Definitions for various internal socket options. These are used ! 42: // by the Windows Sockets DLL to communicate information to the helper ! 43: // DLL via get and set socket information calls. ! 44: // ! 45: ! 46: #define SOL_INTERNAL 0xFFFE ! 47: #define SO_CONTEXT 1 ! 48: ! 49: // ! 50: // Open, Notify, and Socket Option routine prototypes. ! 51: // ! 52: ! 53: typedef ! 54: INT ! 55: (* WINAPI PWSH_OPEN_SOCKET) ( ! 56: IN PINT AddressFamily, ! 57: IN PINT SocketType, ! 58: IN PINT Protocol, ! 59: OUT PUNICODE_STRING TransportDeviceName, ! 60: OUT PVOID *HelperDllSocketContext, ! 61: OUT PDWORD NotificationEvents ! 62: ); ! 63: ! 64: INT ! 65: WINAPI ! 66: WSHOpenSocket ( ! 67: IN OUT PINT AddressFamily, ! 68: IN OUT PINT SocketType, ! 69: IN OUT PINT Protocol, ! 70: OUT PUNICODE_STRING TransportDeviceName, ! 71: OUT PVOID *HelperDllSocketContext, ! 72: OUT PDWORD NotificationEvents ! 73: ); ! 74: ! 75: typedef ! 76: INT ! 77: (* WINAPI PWSH_NOTIFY) ( ! 78: IN PVOID HelperDllSocketContext, ! 79: IN SOCKET SocketHandle, ! 80: IN HANDLE TdiAddressObjectHandle, ! 81: IN HANDLE TdiConnectionObjectHandle, ! 82: IN DWORD NotifyEvent ! 83: ); ! 84: ! 85: INT ! 86: WINAPI ! 87: WSHNotify ( ! 88: IN PVOID HelperDllSocketContext, ! 89: IN SOCKET SocketHandle, ! 90: IN HANDLE TdiAddressObjectHandle, ! 91: IN HANDLE TdiConnectionObjectHandle, ! 92: IN DWORD NotifyEvent ! 93: ); ! 94: ! 95: typedef ! 96: INT ! 97: (* WINAPI PWSH_GET_SOCKET_INFORMATION) ( ! 98: IN PVOID HelperDllSocketContext, ! 99: IN SOCKET SocketHandle, ! 100: IN HANDLE TdiAddressObjectHandle, ! 101: IN HANDLE TdiConnectionObjectHandle, ! 102: IN INT Level, ! 103: IN INT OptionName, ! 104: OUT PCHAR OptionValue, ! 105: OUT PINT OptionLength ! 106: ); ! 107: ! 108: INT ! 109: WINAPI ! 110: WSHGetSocketInformation ( ! 111: IN PVOID HelperDllSocketContext, ! 112: IN SOCKET SocketHandle, ! 113: IN HANDLE TdiAddressObjectHandle, ! 114: IN HANDLE TdiConnectionObjectHandle, ! 115: IN INT Level, ! 116: IN INT OptionName, ! 117: OUT PCHAR OptionValue, ! 118: OUT PINT OptionLength ! 119: ); ! 120: ! 121: typedef ! 122: INT ! 123: (* WINAPI PWSH_SET_SOCKET_INFORMATION) ( ! 124: IN PVOID HelperDllSocketContext, ! 125: IN SOCKET SocketHandle, ! 126: IN HANDLE TdiAddressObjectHandle, ! 127: IN HANDLE TdiConnectionObjectHandle, ! 128: IN INT Level, ! 129: IN INT OptionName, ! 130: IN PCHAR OptionValue, ! 131: IN INT OptionLength ! 132: ); ! 133: ! 134: INT ! 135: WINAPI ! 136: WSHSetSocketInformation ( ! 137: IN PVOID HelperDllSocketContext, ! 138: IN SOCKET SocketHandle, ! 139: IN HANDLE TdiAddressObjectHandle, ! 140: IN HANDLE TdiConnectionObjectHandle, ! 141: IN INT Level, ! 142: IN INT OptionName, ! 143: IN PCHAR OptionValue, ! 144: IN INT OptionLength ! 145: ); ! 146: ! 147: // ! 148: // Structure and routine for determining the address family/socket ! 149: // type/protocol triples supported by an individual Windows Sockets ! 150: // Helper DLL. The Rows field of WINSOCK_MAPPING determines the ! 151: // number of entries in the Mapping[] array; the Columns field is ! 152: // always 3 for Windows/NT product 1. ! 153: // ! 154: ! 155: typedef struct _WINSOCK_MAPPING { ! 156: DWORD Rows; ! 157: DWORD Columns; ! 158: struct { ! 159: DWORD AddressFamily; ! 160: DWORD SocketType; ! 161: DWORD Protocol; ! 162: } Mapping[1]; ! 163: } WINSOCK_MAPPING, *PWINSOCK_MAPPING; ! 164: ! 165: typedef ! 166: DWORD ! 167: (* WINAPI PWSH_GET_WINSOCK_MAPPING) ( ! 168: OUT PWINSOCK_MAPPING Mapping, ! 169: IN DWORD MappingLength ! 170: ); ! 171: ! 172: DWORD ! 173: WINAPI ! 174: WSHGetWinsockMapping ( ! 175: OUT PWINSOCK_MAPPING Mapping, ! 176: IN DWORD MappingLength ! 177: ); ! 178: ! 179: // ! 180: // Address manipulation routine. ! 181: // ! 182: ! 183: typedef enum _SOCKADDR_ADDRESS_INFO { ! 184: SockaddrAddressInfoNormal, ! 185: SockaddrAddressInfoWildcard, ! 186: SockaddrAddressInfoBroadcast, ! 187: SockaddrAddressInfoLoopback ! 188: } SOCKADDR_ADDRESS_INFO, *PSOCKADDR_ADDRESS_INFO; ! 189: ! 190: typedef enum _SOCKADDR_ENDPOINT_INFO { ! 191: SockaddrEndpointInfoNormal, ! 192: SockaddrEndpointInfoWildcard, ! 193: SockaddrEndpointInfoReserved ! 194: } SOCKADDR_ENDPOINT_INFO, *PSOCKADDR_ENDPOINT_INFO; ! 195: ! 196: typedef struct _SOCKADDR_INFO { ! 197: SOCKADDR_ADDRESS_INFO AddressInfo; ! 198: SOCKADDR_ENDPOINT_INFO EndpointInfo; ! 199: } SOCKADDR_INFO, *PSOCKADDR_INFO; ! 200: ! 201: typedef ! 202: INT ! 203: (* WINAPI PWSH_GET_SOCKADDR_TYPE) ( ! 204: IN PSOCKADDR Sockaddr, ! 205: IN DWORD SockaddrLength, ! 206: OUT PSOCKADDR_INFO SockaddrInfo ! 207: ); ! 208: ! 209: INT ! 210: WINAPI ! 211: WSHGetSockaddrType ( ! 212: IN PSOCKADDR Sockaddr, ! 213: IN DWORD SockaddrLength, ! 214: OUT PSOCKADDR_INFO SockaddrInfo ! 215: ); ! 216: ! 217: typedef ! 218: INT ! 219: (* WINAPI PWSH_GET_WILDCARD_SOCKADDR) ( ! 220: IN PVOID HelperDllSocketContext, ! 221: OUT PSOCKADDR Sockaddr, ! 222: OUT PINT SockaddrLength ! 223: ); ! 224: ! 225: INT ! 226: WINAPI ! 227: WSHGetWildcardSockaddr ( ! 228: IN PVOID HelperDllSocketContext, ! 229: OUT PSOCKADDR Sockaddr, ! 230: OUT PINT SockaddrLength ! 231: ); ! 232:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.