PnpDeviceCompletionQueueDispatchedEntryCompleted
VOID __stdcall PnpDeviceCompletionQueueDispatchedEntryCompleted(
_PNP_DEVICE_COMPLETION_QUEUE *Queue,
_LIST_ENTRY *DispatchedEntry){
UINT64 v3;
_LIST_ENTRY *Flink;
unsigned __int8 v5;
unsigned __int64 v6;
_LIST_ENTRY *Blink;
_LIST_ENTRY *v8;
KeAcquireSpinLockRaiseToDpc(&qword_140C448E8, (UINT64)DispatchedEntry);
Flink = DispatchedEntry->Flink;
v6 = v5;
Blink = DispatchedEntry->Blink;
if( DispatchedEntry->Flink->Blink != DispatchedEntry
|| Blink->Flink != DispatchedEntry
|| (Blink->Flink = Flink,
Flink->Blink = Blink,
v8 = (_LIST_ENTRY *)qword_140C448C0,
--dword_140C448B0,
*(__int64 **)qword_140C448C0 != &qword_140C448B8) )
{
__fastfail(3u);
}
DispatchedEntry->Flink = (_LIST_ENTRY *)&qword_140C448B8;
DispatchedEntry->Blink = v8;
v8->Flink = DispatchedEntry;
qword_140C448C0 = (__int64)DispatchedEntry;
KeReleaseSemaphoreEx(&Semaphore, 0i64, 1i64, v3);
KxReleaseSpinLock(&qword_140C448E8);
__writecr8(v6);
}Referenced by:
PipEnumerateDevice
PnpDeviceCompletionRoutine