PnpSetObjectPropertyWorker
__int64 __fastcall PnpSetObjectPropertyWorker(
INT64 a1,
INT64 a2,
unsigned int a3,
INT64 a4,
INT64 a5,
INT64 a6,
INT64 a7,
__int64 a8,
INT64 a9,
INT64 a10){
VOID *v14;
int v15;
VOID *v16;
INT64 v17;
INT64 v19;
INT64 v20;
INT64 v21;
INT64 v22;
INT64 v23;
VOID *Handle;
Handle = 0i64;
if( (_WORD)a10 || !a8 && (_DWORD)a9 )
return(unsigned int)-1073741811;
v14 = (VOID *)(a8 & -(__int64)((_DWORD)a9 != 0));
v15 = PnpValidatePropertyData(v14, (unsigned int)a9, a7);
if( v15 >= 0 )
{
LODWORD(v23) = a10;
LODWORD(v22) = a9;
LODWORD(v20) = a7;
v15 = PnpSetMappedPropertyDispatch(
(HPNPCTX *)a1,
(WCHAR *)a2,
a3,
(VOID *)a4,
(WCHAR *)a5,
(_DEVPROPKEY *)a6,
v20,
(UINT8 *)v14,
v22,
v23);
if( v15 >= 0 && (int)a3 >= 7 )
PnpObjectRaisePropertyChangeEvent(a1, a2, a3, a4, a5, a6);
if( v15 == -1073741802 )
{
if( a4 )
{
v16 = (VOID *)a4;
goto LABEL_8;
}
v15 = PnpOpenObjectRegKey(a1, a2, a3, 33554439, 0, (__int64)&Handle);
if( v15 >= 0 )
{
v16 = Handle;
LABEL_8:
LODWORD(v21) = a9;
LODWORD(v19) = a7;
v15 = PnpSetGenericStoreProperty((HPNPCTX *)a1, v16, (WCHAR *)a5, (_DEVPROPKEY *)a6, v19, (UINT8 *)v14, v21);
if( v15 >= 0 )
{
v17 = (INT64)Handle;
if( a4 )
v17 = a4;
PnpObjectRaisePropertyChangeEvent(a1, a2, a3, v17, a5, a6);
}
}
}
}
if( Handle )
ZwClose((_HANDLE)Handle);
return(unsigned int)v15;
}Referenced by:
PnpSetObjectProperty