PiCMDuplicateRegistryHandle
VOID __stdcall PiCMDuplicateRegistryHandle(
PVOID SourceHandle,
UINT64 HandleAttributes,
UINT64 *DesiredAccess,
INT8 PreviousMode){
_ACCESS_MASK v5;
_KPROCESSOR_MODE AccessMode;
VOID *Object;
VOID **Handle;
Object = 0i64;
v5 = (int)DesiredAccess;
if( ObReferenceObjectByHandle(SourceHandle, 0i64, (_OBJECT_TYPE *)CmKeyObjectType, 0, &Object, 0i64) >= 0 )
{
LOBYTE(AccessMode) = PreviousMode;
ObOpenObjectByPointer(Object, 0x440ui64, 0i64, v5, (POBJECT_TYPE)CmKeyObjectType, AccessMode, Handle);
}
if( Object )
HalPutDmaAdapter((PADAPTER_OBJECT)Object);
}Referenced by:
PiCMOpenClassKey
PiCMOpenDeviceInterfaceKey
PiCMOpenDeviceKey
PiCMOpenObjectKey