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