PiUEventDeviceNeedsInstall
NTSTATUS __stdcall PiUEventDeviceNeedsInstall(WCHAR *DeviceId, UINT8 *DeviceNeedsInstall){
int ObjectProperty;
INT64 v6[2];
INT64 v7;
int v8;
*DeviceNeedsInstall = 0;
v8 = 0;
v6[0] = 0i64;
LODWORD(v7) = 0;
ObjectProperty = PnpGetObjectProperty(
*(&stru_140CF2E80 + 1214),
(INT64)DeviceId,
1i64,
0i64,
0i64,
(INT64)&DEVPKEY_Device_DevNodeStatus,
(INT64)&v7,
(INT64)&v8);
if( ObjectProperty >= 0 )
{
ObjectProperty = PnpGetObjectProperty(
*(&stru_140CF2E80 + 1214),
(INT64)DeviceId,
1i64,
0i64,
0i64,
(INT64)&DEVPKEY_Device_ProblemCode,
(INT64)&v7,
(INT64)v6);
if( ObjectProperty >= 0 )
{
if( (v8 & 0x40000) != 0 || (v8 & 0x400) != 0 && LODWORD(v6[0]) == 22 )
{
*DeviceNeedsInstall = 0;
}
else if( (v8 & 0x400) != 0 && (LODWORD(v6[0]) == 18 || LODWORD(v6[0]) == 1)
|| (ObjectProperty = PnpGetObjectProperty(
*(&stru_140CF2E80 + 1214),
(INT64)DeviceId,
1i64,
0i64,
0i64,
(INT64)&DEVPKEY_Device_ConfigFlags,
(INT64)&v7,
(INT64)v6 + 4),
ObjectProperty >= 0)
&& (v6[0] & 0x42000000000i64) != 0 )
{
*DeviceNeedsInstall = 1;
}
}
}
return ObjectProperty;
}Referenced by:
PiUEventNotifyUserMode