IoGetAttachedDeviceReference
DEVICE_OBJECT *__stdcall IoGetAttachedDeviceReference(DEVICE_OBJECT *DeviceObject){
WORK_QUEUE_TYPE v1;
void *v2;
unsigned __int8 CurrentIrql;
__int64 v5;
__int64 i;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
v5 = *((_QWORD *)KeGetPcr() + 5) + 160i64;
KxAcquireQueuedSpinLock((PIO_WORKITEM)v5, *(PIO_WORKITEM_ROUTINE *)(v5 + 8), v1, v2);
for( i = *((_QWORD *)DeviceObject + 3); i; i = *(_QWORD *)(i + 24) )
DeviceObject = (DEVICE_OBJECT *)i;
if( ObpTraceFlags )
ObpPushStackInfo((INT64)DeviceObject - 48, 1, 1i64, 1953261124i64);
ObpIncrPointerCount((volatile INT64 *)DeviceObject - 6);
KeReleaseInStackQueuedSpinLockFromDpcLevel((_KLOCK_QUEUE_HANDLE *)(*((_QWORD *)KeGetPcr() + 5) + 160i64));
__writecr8(CurrentIrql);
return DeviceObject;
}Referenced by:
CmpGetVolumeClusterSize
CmpVolumeManagerGetContextForFile
HalpQueryPccInterface
IoBuildPoDeviceNotifyList
IoShutdownSystem
IopFilterResourceRequirementsCall
VfIrpSendSynchronousIrp
WmipForwardWmiIrp
WmipGetFilePDO
WmipRegisterDevice