PiDcGenerateConfigNotificationIfContainerRequiresConfiguration
NTSTATUS __stdcall PiDcGenerateConfigNotificationIfContainerRequiresConfiguration(WCHAR *ContainerId){
NTSTATUS ObjectProperty;
NTSTATUS v3;
INT64 v5;
INT64 v6;
__int64 v7[2];
char v8;
INT64 v9;
int v10;
LODWORD(v9) = 0;
v10 = 0;
LODWORD(v7[0]) = 0;
v8 = 0;
ObjectProperty = PnpGetObjectProperty(
*(&stru_140CF2E80 + 1214),
(INT64)ContainerId,
5i64,
0i64,
0i64,
(INT64)&DEVPKEY_DeviceContainer_IsConnected,
(INT64)&v9,
(INT64)&v8);
if( ObjectProperty >= 0 && v8 && (_DWORD)v9 == 17 )
{
v3 = PnpGetObjectProperty(
*(&stru_140CF2E80 + 1214),
(INT64)ContainerId,
5i64,
0i64,
0i64,
(INT64)&DEVPKEY_DeviceContainer_ConfigFlags,
(INT64)&v9,
(INT64)v7);
ObjectProperty = v3;
if( v3 >= 0 )
{
if( (_DWORD)v9 != 7 )
goto LABEL_10;
if( !LODWORD(v7[0]) )
return ObjectProperty;
}
if( v3 != -1073741275 )
{
LABEL_9:
LODWORD(v6) = 0;
LODWORD(v5) = 0;
ZwUpdateWnfStateData(&WNF_PNPC_CONTAINER_CONFIG_REQUESTED, 0i64, 0i64, 0i64, 0i64, v5, v6);
return ObjectProperty;
}
LABEL_10:
ObjectProperty = PnpSetObjectProperty(
*(&stru_140CF2E80 + 607),
(INT64)ContainerId,
5u,
0i64,
0i64,
(__int64)&DEVPKEY_DeviceContainer_ConfigFlags,
7,
(__int64)&unconfiguredConfigFlags,
4,
0);
if( ObjectProperty < 0 )
return ObjectProperty;
goto LABEL_9;
}
return ObjectProperty;
}Referenced by:
PiDcHandleContainerEvent
PiDcInit