KsepDbQueryRegistryDeviceData
VOID __fastcall KsepDbQueryRegistryDeviceData(
const WCHAR *DeviceId,
const WCHAR *DataName,
UINT64 *DataType,
UINT64 *DataBufferLength){
int v7;
PVOID Handle;
__int64 v9;
_UNICODE_STRING TargetString;
*(_QWORD *)&TargetString.Length = 0i64;
TargetString.Buffer = 0i64;
Handle = 0i64;
if( KsepStringTransform(&TargetString, (PWCHAR)DeviceId) >= 0 )
{
if( KsepRegistryOpenKey(
(PWCHAR)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Compatibility\\Device",
TargetString.Buffer,
&Handle) >= 0 )
{
v9 = *(unsigned int *)DataBufferLength;
KsepRegistryQueryValue(Handle, (WCHAR *)DataName);
*(_DWORD *)DataBufferLength = v9;
if( v7 != -1073741772 && v7 >= 0 )
*(_DWORD *)DataType |= 0x10000000u;
}
if( Handle )
{
ZwClose((_HANDLE)Handle);
_InterlockedIncrement(dword_140C2A7FC);
}
}
KsepStringFree(&TargetString);
}Referenced by:
KseQueryDeviceData