ExpSemaphoreInitialization

UINT8 __stdcall ExpSemaphoreInitialization(){
  _UNICODE_STRING DestinationString; 
  _OBJECT_TYPE_INITIALIZER ObjectTypeInitializer; 

  DestinationString = 0i64;
  RtlInitUnicodeString(&DestinationString, L"Semaphore");
  memset(&ObjectTypeInitializer, 0i64, sizeof(ObjectTypeInitializer));
  ObjectTypeInitializer.Length = 120;
  ObjectTypeInitializer.ObjectTypeCode = 8;
  ObjectTypeInitializer.InvalidAttributes = 256;
  ObjectTypeInitializer.PoolType = NonPagedPoolNx;
  ObjectTypeInitializer.GenericMapping = (_GENERIC_MAPPING)ExpSemaphoreMapping;
  ObjectTypeInitializer.DefaultNonPagedPoolCharge = 32;
  ObjectTypeInitializer.ValidAccessMask = 2031619;
  return ObCreateObjectType(&DestinationString, &ObjectTypeInitializer, 0i64, (_OBJECT_TYPE **)&ExSemaphoreObjectType) >= 0;
}

Referenced by:

ExpInitSystemPhase1