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:
routing\ip\wanarp\ioctl.c
Abstract:
Header for ioctl.c
Revision History:
Amritansh Raghav
--*/
//
// Notification events
//
typedef struct _PENDING_NOTIFICATION { LIST_ENTRY leNotificationLink;
WORK_QUEUE_ITEM wqi;
WANARP_NOTIFICATION wnMsg;
}PENDING_NOTIFICATION, *PPENDING_NOTIFICATION;
//
// The lookaside list for notifications
//
extern NPAGED_LOOKASIDE_LIST g_llNotificationBlocks;
#define WANARP_NOTIFICATION_LOOKASIDE_DEPTH 4
//++
//
// PPENDING_NOTIFICATION
// AllocateNotification(
// VOID
// )
//
// Allocate a notification blob from g_llNotificationBlocks
//
//--
#define AllocateNotification() \
ExAllocateFromNPagedLookasideList(&g_llNotificationBlocks)
//++
//
// VOID
// FreeNotification(
// PPENDING_NOTIFICATION pMsg
// )
//
// Free a notification blob to g_llNotificationBlocks
//
//--
#define FreeNotification(n) \
ExFreeToNPagedLookasideList(&g_llNotificationBlocks, (n))
//
// List of pending notifications
//
LIST_ENTRY g_lePendingNotificationList;
//
// List of pending IRPs
//
LIST_ENTRY g_lePendingIrpList;
//
// Set to true if we want to queue notifications
//
BOOLEAN g_bQueueNotifications;
NTSTATUS WanProcessNotification( PIRP pIrp, ULONG ulInLength, ULONG ulOutLength );
NTSTATUS WanAddUserModeInterface( PIRP pIrp, ULONG ulInLength, ULONG ulOutLength );
NTSTATUS WanDeleteUserModeInterface( PIRP pIrp, ULONG ulInLength, ULONG ulOutLength );
VOID WanpCleanOutInterfaces( VOID );
VOID WanpDeleteInterface( PUMODE_INTERFACE pInterface );
NTSTATUS WanDeleteAdapters( PIRP pIrp, ULONG ulInLength, ULONG ulOutLength );
NTSTATUS WanProcessConnectionFailure( PIRP pIrp, ULONG ulInLength, ULONG ulOutLength );
NTSTATUS WanGetIfStats( PIRP pIrp, ULONG ulInLength, ULONG ulOutLength );
NTSTATUS WanMapServerAdapter( PIRP pIrp, ULONG ulInLength, ULONG ulOutLength );
NTSTATUS WanStartStopQueuing( PIRP pIrp, ULONG ulInLength, ULONG ulOutLength );
VOID WanCancelNotificationIrp( PDEVICE_OBJECT pDeviceObject, PIRP pIrp );
VOID WanpCompleteIrp( PPENDING_NOTIFICATION pEvent );
NTSTATUS WanpGetNewIndex( OUT PULONG pulIndex );
VOID WanpFreeIndex( IN ULONG ulIndex );
|