108 lines
2.2 KiB
C
108 lines
2.2 KiB
C
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
spuddata.c
|
|
|
|
Abstract:
|
|
|
|
This module contains global data for SPUD.
|
|
|
|
Author:
|
|
|
|
John Ballard (jballard) 21-Oct-1996
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "spudp.h"
|
|
|
|
#ifdef ALLOC_PRAGMA
|
|
#pragma alloc_text( INIT, SpudInitializeData )
|
|
#endif
|
|
|
|
PVOID ATQIoCompletionPort = NULL;
|
|
PVOID ATQOplockCompletionPort = NULL;
|
|
BOOLEAN DriverInitialized = FALSE;
|
|
PDEVICE_OBJECT AfdDeviceObject = NULL;
|
|
PFAST_IO_DEVICE_CONTROL AfdFastIoDeviceControl = NULL;
|
|
PSPUD_LOOKASIDE_LISTS SpudLookasideLists;
|
|
|
|
#if USE_SPUD_COUNTERS
|
|
KSPIN_LOCK CounterLock;
|
|
ULONG CtrTransmitfileAndRecv;
|
|
ULONG CtrTransRecvFastTrans;
|
|
ULONG CtrTransRecvFastRecv;
|
|
ULONG CtrTransRecvSlowTrans;
|
|
ULONG CtrTransRecvSlowRecv;
|
|
ULONG CtrSendAndRecv;
|
|
ULONG CtrSendRecvFastSend;
|
|
ULONG CtrSendRecvFastRecv;
|
|
ULONG CtrSendRecvSlowSend;
|
|
ULONG CtrSendRecvSlowRecv;
|
|
#endif
|
|
|
|
#if DBG
|
|
ULONG SpudDebug = 0;
|
|
ULONG SpudLocksAcquired = 0;
|
|
BOOLEAN SpudUsePrivateAssert = FALSE;
|
|
#endif
|
|
|
|
#if IRP_DEBUG
|
|
PTRACE_LOG IrpTraceLog = NULL;
|
|
#endif
|
|
|
|
BOOLEAN
|
|
SpudInitializeData (
|
|
VOID
|
|
)
|
|
{
|
|
PAGED_CODE( );
|
|
|
|
if( !MmIsThisAnNtAsSystem() ) {
|
|
return FALSE;
|
|
}
|
|
|
|
SpudLookasideLists = ExAllocatePoolWithTag( NonPagedPool,
|
|
sizeof(*SpudLookasideLists),
|
|
'lDUI' );
|
|
|
|
if (SpudLookasideLists == NULL) {
|
|
return FALSE;
|
|
}
|
|
|
|
ExInitializeNPagedLookasideList(
|
|
&SpudLookasideLists->ReqContextList,
|
|
NULL,
|
|
NULL,
|
|
NonPagedPool,
|
|
sizeof( SPUD_AFD_REQ_CONTEXT ),
|
|
'cDUI',
|
|
12
|
|
);
|
|
|
|
#if USE_SPUD_COUNTERS
|
|
KeInitializeSpinLock( &CounterLock );
|
|
CtrTransmitfileAndRecv = 0;
|
|
CtrTransRecvFastTrans = 0;
|
|
CtrTransRecvFastRecv = 0;
|
|
CtrTransRecvSlowTrans = 0;
|
|
CtrTransRecvSlowRecv = 0;
|
|
CtrSendAndRecv = 0;
|
|
CtrSendRecvFastSend = 0;
|
|
CtrSendRecvFastRecv = 0;
|
|
CtrSendRecvSlowSend = 0;
|
|
CtrSendRecvSlowRecv = 0;
|
|
#endif
|
|
|
|
IrpTraceLog = CreateIrpTraceLog( 1024 );
|
|
|
|
return TRUE;
|
|
|
|
} // SpudInitializeData
|
|
|
|
|