KeInitializePriQueue
VOID __fastcall KeInitializePriQueue(_KPRIQUEUE *Queue, UINT64 Count){
__int64 v3;
_LIST_ENTRY *EntryListHead;
volatile int *CurrentCount;
LOWORD(Queue->Header.Lock) = 21;
Queue->Header.WaitListHead.Blink = &Queue->Header.WaitListHead;
Queue->Header.WaitListHead.Flink = &Queue->Header.WaitListHead;
Queue->Header.Size = -84;
Queue->ThreadListHead.Blink = &Queue->ThreadListHead;
Queue->ThreadListHead.Flink = &Queue->ThreadListHead;
v3 = 32i64;
Queue->Header.SignalState = 0;
EntryListHead = Queue->EntryListHead;
CurrentCount = Queue->CurrentCount;
do
{
EntryListHead->Blink = EntryListHead;
EntryListHead->Flink = EntryListHead;
++EntryListHead;
*CurrentCount++ = 0;
--v3;
}
while( v3 );
if( !(_DWORD)Count )
LODWORD(Count) = KeQueryActiveProcessorCountEx(0xFFFFu);
Queue->MaximumCount = Count;
}Referenced by:
ExpWorkQueueInitialize