PiUEventBroadcastPortsChangedEvent
VOID __stdcall PiUEventBroadcastPortsChangedEvent(UINT64 SessionId, _GUID *EventGuid, WCHAR *DeviceId){
_ADAPTER_OBJECT *SessionById;
UINT64 DesiredAccess;
UINT64 Create;
UINT64 v7;
UINT64 SessionIda;
int ExplicitScope;
int v10;
VOID *Handle;
_GUID Buffer;
__int128 v13[2];
Handle = 0i64;
v10 = 0;
LODWORD(SessionIda) = SessionId;
Buffer = 0i64;
LODWORD(DesiredAccess) = 131097;
memset(v13, 0, sizeof(v13));
if( CmOpenDeviceRegKey(
*(&stru_140CF2E80 + 607),
DeviceId,
CM_KEY_TYPE_DEVICE_HARDWARE,
0i64,
DesiredAccess,
0,
&Handle,
0i64) >= 0 )
{
ExplicitScope = 32;
if( (int)RegRtlQueryValue(Handle, L"PortName", &v10, v13, (__int64)&ExplicitScope) >= 0 )
{
Buffer = *EventGuid;
if( (_DWORD)SessionIda == -1 )
{
LODWORD(v7) = 0;
LODWORD(Create) = 0;
ZwUpdateWnfStateData(&WNF_PNPA_PORTS_CHANGED, &Buffer, 0x30ui64, 0i64, 0i64, Create, v7);
}
else
{
SessionById = (_ADAPTER_OBJECT *)MmGetSessionById((unsigned int)SessionIda);
if( SessionById )
{
LODWORD(v7) = 0;
LODWORD(Create) = 0;
ZwUpdateWnfStateData(&WNF_PNPA_PORTS_CHANGED_SESSION, &Buffer, 0x30ui64, 0i64, &SessionIda, Create, v7);
HalPutDmaAdapter(SessionById);
}
}
}
}
if( Handle )
ZwClose((_HANDLE)Handle);
}Referenced by:
PiUEventBroadcastEventWorker