PiSwPropertySet
NTSTATUS __fastcall PiSwPropertySet(WCHAR *ObjectType, VOID *ObjectBaseKey, const INT64 a3, _DEVPROPERTY *Properties){
unsigned int v5;
unsigned int v7;
NTSTATUS v8;
unsigned int v9;
UINT64 *v10;
UINT8 *PropertyBuffer;
WCHAR *PropertyLocaleName;
PVOID P;
P = 0i64;
PropertyLocaleName = 0i64;
v5 = (unsigned int)Properties;
v7 = (unsigned int)ObjectBaseKey;
v8 = PiPnpRtlBeginOperation((HPNPOPCTX **)&P);
if( v8 >= 0 )
{
v8 = PnpOpenObjectRegKey(*(&stru_140CF2E80 + 607), (__int64)ObjectType, v7, 7, 0, (__int64)&PropertyLocaleName);
if( v8 >= 0 )
{
v9 = 0;
if( v5 )
{
v10 = (UINT64 *)(a3 + 40);
do
{
LODWORD(PropertyBuffer) = *((_DWORD *)v10 - 2);
v8 = PiPnpRtlSetObjectProperty(
*(&stru_140CF2E80 + 607),
(PNP_OBJECT_TYPE)ObjectType,
(VOID *)v7,
PropertyLocaleName,
(_DEVPROPKEY *)*(v10 - 2),
(UINT64)(v10 - 5),
PropertyBuffer,
*v10);
if( v8 == -1073741275 )
{
if( *((_DWORD *)v10 - 2) )
break;
v8 = 0;
}
if( v8 < 0 )
break;
++v9;
v10 += 6;
}
while( v9 < v5 );
}
}
}
if( PropertyLocaleName )
ZwClose((_HANDLE)PropertyLocaleName);
if( P )
PiPnpRtlEndOperation(P);
return v8;
}Referenced by:
PiSwCompleteCreate
PiSwIrpInterfacePropertySet
PiSwIrpInterfaceRegister
PiSwIrpPropertySet
PiSwIrpStartCreateWorker