PnpTraceStartDevice

__int64 __fastcall PnpTraceStartDevice(__int64 a1, int a2, __int64 a3){
  int v3; 
  UNICODE_STRING *v6; 
  IMAGE_NT_HEADERS *v8; 
  UINT64 Version; 
  v3 = 0;
  v6 = 0i64;
  if( a3 )
  {
    v6 = (UNICODE_STRING *)(a3 + 56);
    v8 = RtlImageNtHeader(*(PVOID *)(a3 + 24));
    v3 = (v8->OptionalHeader.MajorImageVersion << 16) | v8->OptionalHeader.MinorImageVersion;
  }
  LODWORD(Version) = v3;
  PnpDiagnosticTraceDeviceOperation(
    (EVENT_DESCRIPTOR *)&KMPnPEvt_DeviceStart_Stop,
    (UNICODE_STRING *)(a1 + 40),
    (unsigned int)a2,
    v6,
    Version);
  return 0i64;
}

Referenced by:

PnpDeviceCompletionRoutine
PnpStartDeviceNode