DrvDbSetRegValueMappedProperty
NTSTATUS __stdcall DrvDbSetRegValueMappedProperty(
VOID *ObjectBaseKey,
_DRVDB_PROPERTY_REG_VALUE_MAP *PropertyRegValue,
UINT64 PropertyType,
UINT8 *PropertyBuffer,
UINT64 PropertySize){
int v5;
int *v7;
int v8;
NTSTATUS result;
WCHAR *v10;
_OBJECT_TYPE *v11;
UINT64 v12;
_UNICODE_STRING DestinationString;
int v14;
UINT64 v15;
v5 = 0;
v14 = 0;
if( (_DWORD)PropertyBuffer )
{
if( (_DWORD)PropertyBuffer == 17 )
{
if( (_DWORD)v15 == 1 )
{
LOBYTE(v5) = *(_BYTE *)PropertySize == 0xFF;
v14 = v5;
LABEL_8:
v8 = 4;
v7 = &v14;
goto LABEL_5;
}
}
else
{
if( (_DWORD)PropertyBuffer != 5 )
{
v7 = (int *)PropertySize;
v8 = v15;
LABEL_5:
LODWORD(v12) = v8;
return RegRtlSetValue(
PropertyRegValue,
*(const wchar_t **)(PropertyType + 16),
*(_DWORD *)(PropertyType + 24),
v7,
v12);
}
if( (_DWORD)v15 == 2 )
{
v14 = *(unsigned __int16 *)PropertySize;
goto LABEL_8;
}
}
return -1073741811;
}
else
{
v10 = *(WCHAR **)(PropertyType + 16);
DestinationString = 0i64;
result = RtlInitUnicodeStringEx(&DestinationString, v10);
if( result >= 0 )
result = ZwDeleteValueKey(PropertyRegValue, &DestinationString, v11);
if( result == -1073741772 )
return -1073741275;
}
return result;
}Referenced by:
DrvDbSetDeviceIdMappedProperty
DrvDbSetDriverDatabaseMappedProperty
DrvDbSetDriverFileMappedProperty
DrvDbSetDriverInfFileMappedProperty
DrvDbSetDriverPackageMappedProperty