2025-04-27 07:49:33 -04:00

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