CmSetInstallerClassRegProp
NTSTATUS __stdcall CmSetInstallerClassRegProp(
HPNPCTX *hPnpCtx,
const WCHAR *ClassGuid,
VOID *BaseKeyHandle,
INT64 CmRegProp,
INT64 CmRegPropType,
UINT8 *PropertyBuffer,
INT64 PropertySize,
UINT64 Flags){
int v11;
__int64(__fastcall *v12)(HPNPCTX *, const WCHAR *, __int64, __int64, int, VOID **);
int v13;
NTSTATUS v14;
NTSTATUS v15;
int v16;
int v17;
NTSTATUS v18;
UINT64 v20;
UINT64 SecurityDescriptorLength;
UINT64 v22;
VOID *arg28[12];
v11 = CmRegProp;
memset(arg28, 0i64, 0x58u);
v12 = (__int64(__fastcall *)(HPNPCTX *, const WCHAR *, __int64, __int64, int, VOID **))*((_QWORD *)hPnpCtx + 63);
HIDWORD(arg28[3]) = CmRegPropType;
arg28[2] = BaseKeyHandle;
LODWORD(arg28[3]) = v11;
arg28[5] = (VOID *)(unsigned int)PropertySize;
arg28[4] = PropertyBuffer;
if( v12 )
{
v13 = v12(hPnpCtx, ClassGuid, 2i64, 10i64, 1, arg28);
if( v13 == -1073741822 )
{
v12 = 0i64;
}
else
{
if( v13 == -1073741536 )
return(NTSTATUS)arg28[0];
if( v13 )
return -1073741595;
}
}
LODWORD(v22) = HIDWORD(arg28[5]);
LODWORD(SecurityDescriptorLength) = arg28[5];
LODWORD(v20) = HIDWORD(arg28[3]);
v14 = CmSetInstallerClassRegPropWorker(
(_MMVAD **)hPnpCtx,
ClassGuid,
arg28[2],
(_CM_REG_PROP)arg28[3],
v20,
(UINT8 *)arg28[4],
SecurityDescriptorLength,
v22);
v15 = v14;
if( !v12 )
return v15;
LODWORD(arg28[0]) = v14;
v16 = v12(hPnpCtx, ClassGuid, 2i64, 10i64, 2, arg28);
v17 = v16;
if( v16 == -1073741822 )
return v15;
if( v16 == -1073741536 )
return(NTSTATUS)arg28[0];
v18 = v15;
if( v17 )
return -1073741595;
return v18;
}Referenced by:
CmSetInstallerClassMappedPropertyFromRegProp
PiCMSetRegistryProperty