PnpSetObjectPropertyWorker
__int64 __fastcall PnpSetObjectPropertyWorker(
__int64 a1,
__int64 a2,
int a3,
__int64 a4,
__int64 a5,
__int64 a6,
int a7,
__int64 a8,
ULONG SecurityDescriptorLength,
int a10){
void *v14;
int v15;
char *v16;
void *v17;
void *Handle[2];
Handle[0] = 0i64;
if( (_WORD)a10 || !a8 && SecurityDescriptorLength )
return(unsigned int)-1073741811;
v14 = (void *)(a8 & -(__int64)(SecurityDescriptorLength != 0));
v15 = PnpValidatePropertyData(v14, SecurityDescriptorLength, a7);
if( v15 >= 0 )
{
v15 = PnpSetMappedPropertyDispatch(a1, a2, a3, a4, a5, a6, a7, (__int64)v14, SecurityDescriptorLength, a10);
if( v15 >= 0 && a3 >= 7 )
PnpObjectRaisePropertyChangeEvent(a1, a2, (unsigned int)a3, a4, a5, a6);
if( v15 == -1073741802 )
{
if( a4 )
{
v16 = (char *)a4;
goto LABEL_8;
}
v15 = PnpOpenObjectRegKey(a1, a2, a3, 33554439, 0, (__int64)Handle);
if( v15 >= 0 )
{
v16 = (char *)Handle[0];
LABEL_8:
v15 = PnpSetGenericStoreProperty(a1, v16, (const wchar_t *)a5, a6, a7, v14, SecurityDescriptorLength);
if( v15 >= 0 )
{
v17 = Handle[0];
if( a4 )
v17 = (void *)a4;
PnpObjectRaisePropertyChangeEvent(a1, a2, (unsigned int)a3, (__int64)v17, a5, a6);
}
}
}
}
if( Handle[0] )
ZwClose(Handle[0]);
return(unsigned int)v15;
}Referenced by:
PnpSetObjectProperty