KeInitializeSemaphore

VOID __fastcall KeInitializeSemaphore(_KSEMAPHORE *Semaphore, INT64 Count, INT64 Limit){
  Semaphore->Header.Type = 5;
  Semaphore->Header.WaitListHead.Blink = &Semaphore->Header.WaitListHead;
  Semaphore->Header.WaitListHead.Flink = &Semaphore->Header.WaitListHead;
  Semaphore->Header.Size = 8;
  Semaphore->Header.SignalState = Count;
  Semaphore->Limit = Limit;
}

Referenced by:

IopInitializePlugPlayServices
MiInitializeSections
NtCreateSemaphore
PopFxInitializeWorkPool
PspAllocateThread