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.
 
 
 
 
 
 

206 lines
2.5 KiB

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
ipinip\driver.h
Abstract:
Headers for driver.c
Revision History:
--*/
//
// The number of IRP_MJ_CREATEs we have received
//
ULONG g_ulNumCreates;
//
// The state of the driver
//
DWORD g_dwDriverState;
//
// The lock to protect the driver state
//
RT_LOCK g_rlStateLock;
//
// The mutext that serializes binds and unbinds
//
WAN_RESOURCE g_wrBindMutex;
//
// The state of the driver.
//
#define DRIVER_STOPPED 0
#define DRIVER_STARTING 1
#define DRIVER_STARTED 2
//
// Timeout value for start is 10 seconds.
// So in 100ns it becomes
//
#define START_TIMEOUT (LONGLONG)(10 * 1000 * 1000 * 10)
//
// The event to signal when we have started
//
KEVENT g_keStartEvent;
//
// The event to signal when all the threads go to 0 and state is STOPPED
//
KEVENT g_keStateEvent;
//
// Event to signal when our close adapter function is done
//
KEVENT g_keCloseEvent;
//
// The number of "threads" in the driver
//
ULONG g_ulNumThreads;
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
NTSTATUS
WanDispatch(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
WanUnload(
PDRIVER_OBJECT DriverObject
);
BOOLEAN
WanpSetupExternalName(
PUNICODE_STRING pusNtName,
PWCHAR pwcDosName,
BOOLEAN bCreate
);
NTSTATUS
WanpStartDriver(
VOID
);
VOID
WanpStopDriver(
VOID
);
NTSTATUS
WanpRegisterWithIp(
VOID
);
VOID
WanpDeregisterWithIp(
VOID
);
BOOLEAN
EnterDriverCode(
VOID
);
VOID
ExitDriverCode(
VOID
);
VOID
WanpSetDemandDialCallback(
BOOLEAN bSetPointer
);
BOOLEAN
WanpInitializeDriverStructures(
VOID
);
NDIS_STATUS
WanpInitializeNdis(
VOID
);
NTSTATUS
OpenRegKey(
OUT PHANDLE phHandle,
IN PUNICODE_STRING pusKeyName
);
NTSTATUS
GetRegDWORDValue(
HANDLE KeyHandle,
PWCHAR ValueName,
PULONG ValueData
);
VOID
WanpDeinitializeNdis(
VOID
);
VOID
WanNdisUnload(
VOID
);
BOOLEAN
IsEntryOnList(
PLIST_ENTRY pleHead,
PLIST_ENTRY pleEntry
);
VOID
WanpInitializeResource(
IN PWAN_RESOURCE pLock
);
VOID
WanpAcquireResource(
IN PWAN_RESOURCE pLock
);
VOID
WanpReleaseResource(
IN PWAN_RESOURCE pLock
);
INT
ConvertGuidToString(
IN GUID *pGuid,
OUT PWCHAR pwszGuid
);
VOID
WanpClearPendingIrps(
VOID
);