PnpRequestDeviceEjectExWorker

void __fastcall PnpRequestDeviceEjectExWorker(PVOID P, __int64 a2, WCHAR a3){
  unsigned int v4; 
  void(__fastcall *v5)(_QWORD, _QWORD); 
  void *v6; 
  UINT64 Flags; 
  UINT64 KernelModeCaller; 
  struct _UNICODE_STRING DestinationString; 
  UINT64 VetoNameLength; 
  DestinationString = 0i64;
  RtlInitUnicodeString(&DestinationString, (PCWSTR)P + 32, a3);
  LODWORD(KernelModeCaller) = 1;
  LODWORD(VetoNameLength) = 1024;
  LODWORD(Flags) = 8;
  v4 = PnpQueueQueryAndRemoveEvent(
         &DestinationString,
         (PNP_VETO_TYPE *)P + 116,
         (PWCHAR)P + 234,
         &VetoNameLength,
         Flags,
         KernelModeCaller);
  v5 = *(void(__fastcall **)(_QWORD, _QWORD))P;
  *((_DWORD *)P + 6) = v4;
  if( v5 )
    v5(v4, *((_QWORD *)P + 1));
  v6 = (void *)*((_QWORD *)P + 2);
  if( v6 )
    ObfDereferenceObjectWithTag(v6, 0x45706E50ui64);
  ExFreePoolWithTag(P, 0x46706E50u);
}

Referenced by:

No references.