FsRtlInitializeSmssEvent

NTSTATUS __stdcall FsRtlInitializeSmssEvent(){
  NTSTATUS result; 
  int v1; 
  int v2[2]; 
  const wchar_t *v3; 
  INT64 v4[3]; 
  int v5; 
  int v6; 
  __int128 v7; 
  VOID *Handle; 
  PVOID Object; 

  Handle = 0i64;
  v2[1] = 0;
  v6 = 0;
  v4[1] = 0i64;
  v3 = L"\\Device\\VolumesSafeForWriteAccess";
  v2[0] = 4456514;
  v4[2] = (INT64)v2;
  v4[0] = 48i64;
  v5 = 592;
  v7 = 0i64;
  result = NtCreateEvent((UINT64)&Handle, 0x1F0003ui64, (INT64)v4, 0i64, 0);
  if( result >= 0 )
  {
    Object = 0i64;
    v1 = ObReferenceObjectByHandle(Handle, 0x100000ui64, 0i64, 0, &Object, 0i64);
    NtClose((UINT64)Handle);
    if( v1 < 0 )
    {
      return v1;
    }
    else
    {
      SmssEventWorkItem.List.Flink = 0i64;
      SmssEventWorkItem.WorkerRoutine = (void(__fastcall *)(void *))FsRtlWaitForSmssEvent;
      SmssEventWorkItem.Parameter = Object;
      ExQueueWorkItem(&SmssEventWorkItem, DelayedWorkQueue);
      return 0;
    }
  }
  return result;
}

Referenced by:

FsRtlInitSystem