extern LIST_ENTRY IopTimerQueueHead;
extern KDPC IopTimerDpc;
extern KTIMER IopTimer;
-extern KSPIN_LOCK IoVpbLock;
extern KSPIN_LOCK IoStatisticsLock;
extern KSPIN_LOCK DriverReinitListLock;
extern KSPIN_LOCK DriverBootReinitListLock;
InitializeListHead(&LastChanceShutdownListHead);
InitializeListHead(&FsChangeNotifyListHead);
InitializeListHead(&IopErrorLogListHead);
- KeInitializeSpinLock(&IoVpbLock);
KeInitializeSpinLock(&IoStatisticsLock);
KeInitializeSpinLock(&DriverReinitListLock);
KeInitializeSpinLock(&DriverBootReinitListLock);
LIST_ENTRY IopCdRomFsListHead, IopTapeFsListHead;
KGUARDED_MUTEX FsChangeNotifyListLock;
LIST_ENTRY FsChangeNotifyListHead;
-KSPIN_LOCK IoVpbLock;
/* PRIVATE FUNCTIONS *********************************************************/
IoAcquireVpbSpinLock(OUT PKIRQL Irql)
{
/* Simply acquire the lock */
- KeAcquireSpinLock(&IoVpbLock, Irql);
+ *Irql = KeAcquireQueuedSpinLock(LockQueueIoVpbLock);
}
/*
IoReleaseVpbSpinLock(IN KIRQL Irql)
{
/* Just release the lock */
- KeReleaseSpinLock(&IoVpbLock, Irql);
+ KeReleaseQueuedSpinLock(LockQueueIoVpbLock, Irql);
}
/*