PiDevCfgGetDriverPackageId
NTSTATUS __stdcall PiDevCfgGetDriverPackageId(
WCHAR *DriverInfName,
_UNICODE_STRING *DriverPackageId,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
UINT64 *a7,
INT64 a8){
PNP_OBJECT_TYPE v9;
WCHAR *v10;
NTSTATUS ObjectProperties;
UINT64 arg28;
UINT64 PropertyCount;
int v15;
int v16;
_UNICODE_STRING *v17;
int v18;
int v19;
__int64 v20;
VOID *Handle;
Handle = 0i64;
v9 = (int)DriverInfName;
ObjectProperties = PnpOpenObjectRegKey(
*(&stru_140CF2E80 + 607),
(__int64)DriverInfName,
9u,
131097,
0,
(__int64)&Handle);
if( ObjectProperties >= 0 )
{
v16 = 0;
v18 = 0;
v20 = 0i64;
PropertyCount = (UINT64)DEVPKEY_DriverInfFile_ActiveDriverPackage;
LODWORD(arg28) = 1;
v15 = 18;
v17 = DriverPackageId;
v19 = 6;
ObjectProperties = PiDevCfgQueryObjectProperties(
v10,
v9,
(VOID *)9,
(PI_DEVCFG_QUERY_PROPERTY_PARAM *)Handle,
(UINT64)&PropertyCount,
arg28);
if( ObjectProperties >= 0 && (int)v20 < 0 )
ObjectProperties = v20;
}
if( Handle )
ZwClose((_HANDLE)Handle);
return ObjectProperties;
}Referenced by:
PiDevCfgCheckDeviceNeedsUpdate
PiDevCfgFindDeviceMigrationNode
PiDevCfgQueryDriverNode
PiDevCfgQueryIncludedDriverNode