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.
|
|
/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
acddefs.h
Abstract:
Shared internal structure defintions for the Implicit Connection Driver (acd.sys).
Author:
Anthony Discolo (adiscolo) 23-Jun-1995
Environment:
Kernel Mode
Revision History:
--*/
#ifndef _ACDDEFS_
#define _ACDDEFS_
//
// Min macro
//
#define MIN(a, b) (a) < (b) ? (a) : (b)
//
// List entry structure for the AcdCompletionQueue.
//
typedef struct _ACD_COMPLETION { LIST_ENTRY ListEntry; ULONG ulDriverId; // transport driver id
BOOLEAN fCanceled; // TRUE if request was canceled
BOOLEAN fCompleted; // TRUE if request was completed
ACD_NOTIFICATION notif; ACD_CONNECT_CALLBACK pProc; // callback proc
USHORT nArgs; // argument count
PVOID pArgs[1]; // variable length arguments
} ACD_COMPLETION, *PACD_COMPLETION;
//
// A connection block.
//
// For each pending connection, there is a
// connection block that describes the current
// state.
//
typedef struct _ACD_CONNECTION { LIST_ENTRY ListEntry; // connection list
BOOLEAN fNotif; // TRUE if service has been notified
BOOLEAN fProgressPing; // TRUE if service has pinged
BOOLEAN fCompleting; // TRUE if in AcdSignalCompletionCommon
ULONG ulTimerCalls; // # of total pings
ULONG ulMissedPings; // # of missed pings
LIST_ENTRY CompletionList; // completion list
} ACD_CONNECTION, *PACD_CONNECTION;
typedef struct _ACD_DISABLED_ADDRESSES { LIST_ENTRY ListEntry; ULONG ulNumAddresses; ULONG ulMaxAddresses; } ACD_DISABLED_ADDRESSES, *PACD_DISABLED_ADDRESSES;
typedef struct _ACD_DISABLED_ADDRESS { LIST_ENTRY ListEntry; ACD_ENABLE_ADDRESS EnableAddress; } ACD_DISABLED_ADDRESS, *PACD_DISABLED_ADDRESS;
//
// Generic hash table entry.
//
typedef struct _HASH_ENTRY { LIST_ENTRY ListEntry; ACD_ADDR szKey; ULONG ulData; } HASH_ENTRY, *PHASH_ENTRY;
extern KSPIN_LOCK AcdSpinLockG;
extern KEVENT AcdRequestThreadEventG;
extern LIST_ENTRY AcdNotificationQueueG; extern LIST_ENTRY AcdCompletionQueueG; extern LIST_ENTRY AcdConnectionQueueG; extern LIST_ENTRY AcdDriverListG;
extern BOOLEAN fConnectionInProgressG; extern BOOLEAN fProgressPingG; extern ULONG nTimerCallsG; extern ULONG nMissedPingsG;
extern PDEVICE_OBJECT pAcdDeviceObjectG;
extern ACD_ADDR szComputerName;
extern BOOLEAN AcdStopThread;
//
// Miscellaneous routines.
//
VOID AcdPrintAddress( IN PACD_ADDR pAddr );
#endif // _ACDDEFS_
|