PpMarkDeviceStackExtensionFlag
VOID __stdcall PpMarkDeviceStackExtensionFlag(_DEVICE_OBJECT *DeviceObject, UINT64 ExtensionFlag, UINT8 Set){
int v5;
UINT8 v6;
_DEVOBJ_EXTENSION *DeviceObjectExtension;
unsigned int ExtensionFlags;
int v9;
v5 = ExtensionFlag;
v6 = KeAcquireQueuedSpinLock(10i64, ExtensionFlag, Set);
while( DeviceObject )
{
DeviceObjectExtension = DeviceObject->DeviceObjectExtension;
ExtensionFlags = DeviceObjectExtension->ExtensionFlags;
if( Set )
v9 = v5 | ExtensionFlags;
else
v9 = ~v5 & ExtensionFlags;
DeviceObjectExtension->ExtensionFlags = v9;
DeviceObject = DeviceObject->AttachedDevice;
}
KeReleaseQueuedSpinLock(LockQueueIoDatabaseLock, v6);
}Referenced by:
IopDoDeferredSetInterfaceState
PiProcessNewDeviceNode
PnpStartDeviceNode