Source code of Windows XP (NT5)
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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1997.
//
// File: lpcsvr.h
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 12-12-97 RichardW Created
//
//----------------------------------------------------------------------------
#ifndef __LPCSVR_H__
#define __LPCSVR_H__
struct _LPCSVR_MESSAGE ;
typedef struct _LPCSVR_SERVER { LARGE_INTEGER Timeout ; // Default Timeout
RTL_CRITICAL_SECTION Lock ; // Lock
LPCSVR_INITIALIZE Init ; // Callback functions
LIST_ENTRY ContextList ; // List of active contexts
ULONG ContextCount ; // Count of contexts
HANDLE Port ; // Server Port
HANDLE WaitHandle ; // Thread pool handle
ULONG Flags ; // Flags (below)
ULONG MessageSize ; // Size for a message
struct _LPCSVR_MESSAGE * MessagePool ; // List of message buffers
ULONG MessagePoolSize ; // Number of messages
ULONG MessagePoolLimit ; // max # messages
ULONG ReceiveThreads ; // Number of threads with Recieve pending
HANDLE ShutdownEvent ; // Event to signal during shutdown
} LPCSVR_SERVER, * PLPCSVR_SERVER ;
#define LPCSVR_WAITABLE 0x00000001
#define LPCSVR_SHUTDOWN_PENDING 0x00000002
#define LPCSVR_SYNCHRONOUS 0x00000004
typedef struct _LPCSVR_CONTEXT { LIST_ENTRY List ; PLPCSVR_SERVER Server ; HANDLE CommPort ; LONG RefCount ; UCHAR PrivateContext[ 4 ]; } LPCSVR_CONTEXT, * PLPCSVR_CONTEXT ;
typedef struct _LPCSVR_MESSAGE { union { struct _LPCSVR_MESSAGE * Next ; struct _LPCSVR_CONTEXT * Context ; } Header ;
PORT_MESSAGE Message ;
} LPCSVR_MESSAGE, * PLPCSVR_MESSAGE ;
#endif
|