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