IoGetAttachedDeviceReference
NTSTATUS __fastcall IoGetAttachedDeviceReference(INT64 a1, INT64 a2, INT64 a3){
unsigned __int8 CurrentIrql;
_KSPIN_LOCK_QUEUE *v5;
INT64 i;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
v5 = (_KSPIN_LOCK_QUEUE *)((char *)KeGetPcr()->NtTib.ArbitraryUserPointer + 160);
KxAcquireQueuedSpinLock(v5, v5->Lock);
for( i = *(_QWORD *)(a1 + 24); i; i = *(_QWORD *)(i + 24) )
a1 = i;
if( ObpTraceFlags )
ObpPushStackInfo((_OBJECT_HEADER *)(a1 - 48), 1u, 1ui64, 0x746C6644ui64);
ObpIncrPointerCount((_OBJECT_HEADER *)(a1 - 48));
KeReleaseInStackQueuedSpinLockFromDpcLevel((PKLOCK_QUEUE_HANDLE)((char *)KeGetPcr()->NtTib.ArbitraryUserPointer + 160));
__writecr8(CurrentIrql);
return a1;
}Referenced by:
CmpGetVolumeClusterSize
CmpVolumeManagerGetContextForFile
HalpQueryPccInterface
IoBuildPoDeviceNotifyList
IoShutdownSystem
IopFilterResourceRequirementsCall
VfIrpSendSynchronousIrp
WmipForwardWmiIrp
WmipGetFilePDO
WmipRegisterDevice