CmGetDeviceRegProp
NTSTATUS __stdcall CmGetDeviceRegProp(
HPNPCTX *hPnpCtx,
const WCHAR *DeviceInstanceId,
VOID *BaseKeyHandle,
INT64 CmRegProp,
UINT64 *CmRegPropType,
UINT8 *PropertyBuffer,
UINT64 *PropertySize,
UINT64 Flags){
int v10;
__int64(__fastcall *v11)(HPNPCTX *, const WCHAR *, __int64, __int64, int, VOID **);
int v12;
NTSTATUS DeviceRegPropWorker;
NTSTATUS v14;
int v15;
int v16;
NTSTATUS v17;
UINT64 v19;
VOID *v21[12];
v10 = CmRegProp;
memset(v21, 0i64, 0x58u);
v11 = (__int64(__fastcall *)(HPNPCTX *, const WCHAR *, __int64, __int64, int, VOID **))*((_QWORD *)hPnpCtx + 63);
v21[2] = BaseKeyHandle;
LODWORD(v21[3]) = v10;
v21[5] = PropertyBuffer;
v21[6] = PropertySize;
v21[4] = CmRegPropType;
LODWORD(v21[7]) = Flags;
if( v11 )
{
v12 = v11(hPnpCtx, DeviceInstanceId, 1i64, 9i64, 1, v21);
if( v12 == -1073741822 )
{
v11 = 0i64;
}
else
{
if( v12 == -1073741536 )
return(NTSTATUS)v21[0];
if( v12 )
return -1073741595;
}
}
LODWORD(v19) = v21[7];
DeviceRegPropWorker = CmGetDeviceRegPropWorker(
hPnpCtx,
(WCHAR *)DeviceInstanceId,
v21[2],
(_CM_REG_PROP)v21[3],
(UINT64 *)v21[4],
(UINT8 *)v21[5],
(UINT64 *)v21[6],
v19);
v14 = DeviceRegPropWorker;
if( !v11 )
return v14;
LODWORD(v21[0]) = DeviceRegPropWorker;
v15 = v11(hPnpCtx, DeviceInstanceId, 1i64, 9i64, 2, v21);
v16 = v15;
if( v15 == -1073741822 )
return v14;
if( v15 == -1073741536 )
return(NTSTATUS)v21[0];
v17 = v14;
if( v16 )
return -1073741595;
return v17;
}Referenced by:
CmClassFilterCallback
CmDeleteDeviceWorker
CmGetDeviceMappedPropertyFromComposite
CmGetDeviceMappedPropertyFromRegProp
CmGetDeviceRegPropWorker
CmGetDeviceSoftwareKey
CmGetDeviceStatus
CmIsDeviceSafeRemovalRequired
CmIsLocalMachineContainer
CmServiceFilterCallback
IoGetDeviceProperty
IopInitializeDeviceInstanceKey
IopIsReportedAlready
IopPnPDispatch
PiCMCreateDevice
PiCMGetRegistryProperty
PiCMQueryRemove
PiControlGetPropertyData
PiCreateDriverSwDeviceCallback
PiDcHandleCustomDeviceEvent
PiDcResetChildDeviceContainerCallback
PiDcResetChildDeviceContainers
PiDcUpdateDeviceContainerMembership
PiDevCfgCheckDeviceNeedsUpdate
PiDevCfgEnumDeviceKeys
PiDevCfgInitDeviceCallback
PiDevCfgProcessDevice
PiDevCfgProcessDeviceCallback
PiDevCfgResolveVariableKeyHandle
PiDeviceRegistration
PiGetDeviceRegProperty
PiInitializeDevice
PiPnpRtlCmActionCallback
PiPnpRtlGatherDeviceDeleteInfo
PiPnpRtlServiceFilterCallback
PiPnpRtlSetDeviceRegProperty
PiPnpRtlSetObjectProperty
PiProcessNewDeviceNode
PiQueryRemovableDeviceOverride
PipCallDriverAddDevice
PipGenerateContainerID
PipGetRegistryDwordWithFallback
PipGetRegistrySecurityWithFallback
PipMigrateResetDeviceCallback
PipProcessStartPhase3
PipResetDevice
PnpCallDriverQueryServiceHelper
PnpCheckDeviceIdsChanged
PnpIsDeviceInstanceEnabled
PpDevCfgProcessDeviceExtensions
PpDevCfgProcessDeviceOperations
PpDevCfgProcessDeviceReset
PpForEachDeviceInstanceDriver
PpHotSwapUpdateRemovalPolicy