Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

136 lines
2.2 KiB

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
Async.h
Abstract:
Global definitions for the WinSock asynchronous processing thread.
Author:
Keith Moore (keithmo) 18-Jun-1992
Revision History:
--*/
#ifndef _ASYNC_H_
#define _ASYNC_H_
//
// Context block.
//
typedef struct _WINSOCK_CONTEXT_BLOCK {
LIST_ENTRY AsyncThreadQueueListEntry;
HANDLE TaskHandle;
DWORD OpCode;
union {
struct {
HWND hWnd;
unsigned int wMsg;
PCHAR Filter;
int Length;
int Type;
PCHAR Buffer;
int BufferLength;
} AsyncGetHost;
struct {
HWND hWnd;
unsigned int wMsg;
PCHAR Filter;
PCHAR Buffer;
int BufferLength;
} AsyncGetProto;
struct {
HWND hWnd;
unsigned int wMsg;
PCHAR Filter;
PCHAR Protocol;
PCHAR Buffer;
int BufferLength;
} AsyncGetServ;
} Overlay;
} WINSOCK_CONTEXT_BLOCK, *PWINSOCK_CONTEXT_BLOCK;
//
// Opcodes for processing by the winsock asynchronous processing
// thread.
//
#define WS_OPCODE_GET_HOST_BY_ADDR 0x01
#define WS_OPCODE_GET_HOST_BY_NAME 0x02
#define WS_OPCODE_GET_PROTO_BY_NUMBER 0x03
#define WS_OPCODE_GET_PROTO_BY_NAME 0x04
#define WS_OPCODE_GET_SERV_BY_PORT 0x05
#define WS_OPCODE_GET_SERV_BY_NAME 0x06
//
// Initialization/termination functions.
//
BOOL
SockAsyncGlobalInitialize(
VOID
);
VOID
SockAsyncGlobalTerminate(
VOID
);
BOOL
SockCheckAndInitAsyncThread(
VOID
);
VOID
SockTerminateAsyncThread(
VOID
);
BOOL
SockIsAsyncThreadInitialized (
VOID
);
//
// Work queue functions.
//
PWINSOCK_CONTEXT_BLOCK
SockAllocateContextBlock(
DWORD AdditionalSpace
);
VOID
SockFreeContextBlock(
IN PWINSOCK_CONTEXT_BLOCK ContextBlock
);
VOID
SockQueueRequestToAsyncThread(
IN PWINSOCK_CONTEXT_BLOCK ContextBlock
);
INT
SockCancelAsyncRequest(
IN HANDLE TaskHandle
);
#endif // _ASYNC_H_