IopLogAuditIoRegisterNotificationEvent

VOID __stdcall IopLogAuditIoRegisterNotificationEvent(
        EVENT_DESCRIPTOR *EventDescriptor,
        DEVICE_OBJECT *DeviceObject,
        INT64 ReturnCode){
  UINT64 v3; 
  __int64 v5; 
  unsigned int v6; 
  unsigned __int64 v7; 
  __int64 v8; 
  unsigned int v9; 
  __int64 v10; 
  __int16 v11; 
  int v12; 
  EVENT_DATA_DESCRIPTOR UserData[3]; 
  v3 = EtwApiCallsProvRegHandle;
  v12 = 0;
  if( EtwApiCallsProvRegHandle )
  {
    v5 = *((_QWORD *)DeviceObject + 1);
    v6 = 0;
    v11 = 0;
    if( v5 )
    {
      v7 = *(_QWORD *)(v5 + 64);
      if( v7 )
      {
        v6 = 1;
        UserData[0].Size = *(unsigned __int16 *)(v5 + 56);
        UserData[0].Ptr = v7;
        UserData[0].Reserved = 0;
      }
    }
    v8 = v6;
    v9 = v6 + 1;
    UserData[v8].Ptr = (unsigned __int64)&v11;
    *(_QWORD *)&UserData[v8].Size = 2i64;
    v10 = v9;
    UserData[v10].Ptr = (unsigned __int64)&v12;
    *(_QWORD *)&UserData[v10].Size = 4i64;
    EtwWrite(v3, EventDescriptor, 0i64, v9 + 1, UserData);
  }
}

Referenced by:

IoRegisterLastChanceShutdownNotification
IoRegisterShutdownNotification