CmObReferenceObjectByHandle
NTSTATUS __stdcall CmObReferenceObjectByHandle(
PVOID Handle,
UINT64 DesiredAccess,
INT8 AccessMode,
PVOID *Object,
OBJECT_HANDLE_INFORMATION *HandleInformation){
_QWORD *v5;
NTSTATUS v6;
_ADAPTER_OBJECT *v7;
NTSTATUS v8;
__int64 v10;
_ADAPTER_OBJECT *v11;
_QWORD *v12;
v10 = 0i64;
v11 = 0i64;
v5 = v12;
v6 = ObReferenceObjectByHandle(
Handle,
DesiredAccess,
(_OBJECT_TYPE *)CmKeyObjectType,
(INT8)Object,
(VOID **)&v11,
(_OBJECT_HANDLE_INFORMATION *)((unsigned __int64)&v10 & -(__int64)(v12 != 0i64)));
v7 = v11;
v8 = v6;
if( v6 >= 0 )
{
if( *(_DWORD *)&v11->AdapterObject.DmaHeader.Version == 1803104306 )
{
*HandleInformation = (OBJECT_HANDLE_INFORMATION)v11;
v7 = 0i64;
if( v5 )
*v5 = v10;
v8 = 0;
}
else
{
v8 = -1073741816;
}
}
if( v7 )
HalPutDmaAdapter(v7);
return v8;
}Referenced by:
CmLoadDifferencingKey
CmpOpenSystemDriverHiveContext
CmpSaveBootControlSet
NtCompactKeys
NtCompressKey
NtDeleteKey
NtDeleteValueKey
NtFlushKey
NtLockRegistryKey
NtNotifyChangeMultipleKeys
NtQueryMultipleValueKey
NtRenameKey
NtReplaceKey
NtRestoreKey
NtSaveKeyEx
NtSaveMergedKeys
NtSetValueKey