PnpLockDeviceActionQueue
INT64 __stdcall PnpLockDeviceActionQueue(){
UINT64 v0;
UINT64 v1;
UINT8 v2;
UINT8 v3;
unsigned __int8 v4;
unsigned __int64 v5;
INT64 result;
IRP *v7;
while( 1 )
{
PpDevNodeLockTree(1);
KeAcquireSpinLockRaiseToDpc(&PnpSpinLock, v0);
v5 = v4;
if( !PnpEnumerationInProgress )
break;
KxReleaseSpinLock(&PnpSpinLock);
__writecr8(v5);
PpDevNodeUnlockTree(1);
KeWaitForSingleObject(&PnpEnumerationLock, Executive, 0, 0, 0i64);
}
PnpEnumerationInProgress = 1;
KeResetEvent(&PnpEnumerationLock, v1, v2, v3, v7);
KxReleaseSpinLock(&PnpSpinLock);
result = (unsigned int)KiIrqlFlags;
__writecr8(v5);
return result;
}Referenced by:
IoBuildPoDeviceNotifyList
IoControlPnpDeviceActionQueue
IopInitializeBootDrivers
PipInitializeCoreDriversByGroup