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.