PnpDiagnosticTraceObject

INT64 __stdcall PnpDiagnosticTraceObject(const _EVENT_DESCRIPTOR *EventDescriptor, _UNICODE_STRING *Name){
  EVENT_DESCRIPTOR *v2; 
  UINT64 v3; 
  INT64 result; 
  int Length; 
  UINT64 UserDataCount; 
  __int16 v9; 
  EVENT_DATA_DESCRIPTOR UserData; 
  wchar_t *Buffer; 
  int v12; 
  int v13; 
  v3 = PnpEtwHandle;
  if( !PnpEtwHandle || !EtwEventEnabled(PnpEtwHandle, (EVENT_DESCRIPTOR *)EventDescriptor, v2) )
    return 0i64;
  Length = Name->Length;
  UserData.Reserved = 0;
  v13 = 0;
  v9 = (unsigned __int16)Length >> 1;
  UserData.Ptr = (unsigned __int64)&v9;
  Buffer = Name->Buffer;
  LODWORD(UserDataCount) = 2;
  UserData.Size = 2;
  v12 = Length;
  LODWORD(result) = EtwWriteEx(
                      v3,
                      (EVENT_DESCRIPTOR *)EventDescriptor,
                      0i64,
                      0i64,
                      0i64,
                      0i64,
                      UserDataCount,
                      &UserData);
  return result;
}

Referenced by:

IopLoadDriver
IopUnloadDriver
PiDevCfgProcessDevice
PiDrvDbLoadNodeWorkerCallback
PiDrvDbUnloadNodeWorkerCallback
PipEnumerateDevice
PnpDeviceCompletionRoutine
PnpEarlyLaunchImageNotificationPostProcess
PnpEarlyLaunchImageNotificationPreProcess
PnpInitializeBootStartDriver
PnpQueueQueryAndRemoveEvent
PnpRebalance
PnpStartDeviceNode