PiSwPropertySet
INT64 __stdcall PiSwPropertySet(WCHAR *ObjectType, PVOID ObjectBaseKey, const INT64 a3, DEVPROPERTY *Properties){
unsigned int v5;
unsigned int v7;
int v8;
unsigned int v9;
WCHAR **v10;
INT64 v12;
UINT64 v13;
UINT64 v14;
HANDLE Handle;
PVOID P;
P = 0i64;
Handle = 0i64;
v5 = (unsigned int)Properties;
v7 = (unsigned int)ObjectBaseKey;
v8 = PiPnpRtlBeginOperation((__int64 **)&P);
if( v8 >= 0 )
{
v8 = PnpOpenObjectRegKey(PiPnpRtlCtx, (__int64)ObjectType, v7, 7, 0, (__int64)&Handle);
if( v8 >= 0 )
{
v9 = 0;
if( v5 )
{
v10 = (WCHAR **)(a3 + 40);
do
{
LODWORD(v14) = 0;
LODWORD(v13) = *((_DWORD *)v10 - 1);
LODWORD(v12) = *((_DWORD *)v10 - 2);
v8 = PiPnpRtlSetObjectProperty(
PiPnpRtlCtx,
ObjectType,
v7,
(INT64)Handle,
(INT64)*(v10 - 2),
(INT64)(v10 - 5),
v12,
*v10,
v13,
v14);
if( v8 == -1073741275 )
{
if( *((_DWORD *)v10 - 2) )
break;
v8 = 0;
}
if( v8 < 0 )
break;
++v9;
v10 += 6;
}
while( v9 < v5 );
}
}
}
if( Handle )
ZwClose(Handle);
if( P )
PiPnpRtlEndOperation(P);
return(unsigned int)v8;
}Referenced by:
PiSwCompleteCreate
PiSwIrpInterfacePropertySet
PiSwIrpInterfaceRegister
PiSwIrpPropertySet
PiSwIrpStartCreateWorker