VfAllocateCrashDumpRegisters

VOID *__stdcall VfAllocateCrashDumpRegisters(PADAPTER_OBJECT AdapterObject, PULONG NumberOfMapRegisters){
  UINT64 *v2; 
  _LIST_ENTRY *AdapterInformationInternal; 
  VOID *CrashDumpRegisters; 

  v2 = (UINT64 *)NumberOfMapRegisters;
  if( KeGetCurrentIrql() > 2u )
    VfDisableHalVerifier();
  LOBYTE(NumberOfMapRegisters) = 1;
  AdapterInformationInternal = ViGetAdapterInformationInternal(
                                 &AdapterObject->AdapterObject.DmaHeader,
                                 (INT64)NumberOfMapRegisters);
  CrashDumpRegisters = HalAllocateCrashDumpRegisters(AdapterObject, v2);
  if( AdapterInformationInternal )
  {
    VF_ASSERT_IRQL(2u);
    _InterlockedExchangeAdd((volatile signed __int32 *)&AdapterInformationInternal[9].Blink, *(_DWORD *)v2);
    ADD_MAP_REGISTERS((_ADAPTER_INFORMATION *)AdapterInformationInternal, *(unsigned int *)v2, 0);
    if( ViVerifyDma )
    {
      if( !CrashDumpRegisters )
        return(VOID *)-559026163i64;
    }
  }
  return CrashDumpRegisters;
}

Referenced by:

No references.