PiCslInitialize

NTSTATUS __stdcall PiCslInitialize(){
  int v0; 
  _UNICODE_STRING v2; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 

  *(&ObjectAttributes.Length + 1) = 0;
  *(&ObjectAttributes.Attributes + 1) = 0;
  PipCslConsoleLockState = 0;
  v2 = 0i64;
  RtlInitUnicodeString(&v2, L"\\Callback\\IoExternalDmaUnblock");
  ObjectAttributes.RootDirectory = 0i64;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 80;
  ObjectAttributes.ObjectName = &v2;
  *(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
  v0 = ExCreateCallback((PCALLBACK_OBJECT *)&PipCslCallbackObject, &ObjectAttributes, 1u, 1u);
  if( v0 >= 0 )
  {
    ExRegisterCallback((PCALLBACK_OBJECT)PipCslCallbackObject, PipCslStateChangeCallback, 0i64);
    PipCslInitialized = 1;
  }
  return v0;
}

Referenced by:

IopInitializePlugPlayServices