windows-nt/Source/XPSP1/NT/net/rras/ip/wanarp2/ioctl.h
2020-09-26 16:20:57 +08:00

177 lines
2.5 KiB
C

/*++
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
);