PFREE_ADAPTER_OBJECT 콜백 함수(wdm.h)

FreeAdapterObject 루틴은 드라이버가 모든 DMA 작업을 완료한 후 지정된 어댑터 개체를 해제합니다.

구문

PFREE_ADAPTER_OBJECT PfreeAdapterObject;

void PfreeAdapterObject(
  [in] PDMA_ADAPTER DmaAdapter,
  [in] IO_ALLOCATION_ACTION AllocationAction
)
{...}

매개 변수

[in] DmaAdapter

DMA_ADAPTER 구조체에 대한 포인터입니다. 이 구조체는 해제할 어댑터 개체입니다. 이 개체는 드라이버의 버스 master DMA 디바이스 또는 시스템 DMA 채널을 나타냅니다. 호출자는 IoGetDmaAdapter 루틴에 대한 이전 호출에서 이 포인터를 얻었습니다.

[in] AllocationAction

호출 드라이버가 요청하는 할당 취소 유형입니다. 이 매개 변수를 IO_ALLOCATION_ACTION 열거형 값으로 설정합니다. 자세한 내용은 주의 섹션을 참조하세요.

반환 값

없음

설명

FreeAdapterObject 는 이름으로 직접 호출할 수 있는 시스템 루틴이 아닙니다. 이 루틴은 DMA_OPERATIONS 구조에서 반환된 주소의 포인터로만 호출할 수 있습니다. 드라이버는 DeviceDescription 매개 변수의 Version 멤버가 DEVICE_DESCRIPTION_VERSION3 설정된 IoGetDmaAdapter를 호출하여 이 루틴의 주소를 가져옵니다. IoGetDmaAdapterNULL을 반환하는 경우 플랫폼에서 루틴을 사용할 수 없습니다.

AllocationAction = DeallocateObject인 경우 FreeAdapterObject 호출은 어댑터 개체를 해제하고 이 개체에 할당될 수 있는 모든 맵 레지스터를 해제합니다.

AllocationAction = DeallocateObjectKeepRegisters인 경우 FreeAdapterObject 호출은 어댑터 개체를 해제하지만 맵 레지스터는 해제하지 않습니다. 이 경우 드라이버는 FreeMapRegisters 루틴을 호출하여 할당된 맵 레지스터를 명시적으로 해제해야 합니다.

AllocationAction = KeepObject인 경우 FreeAdapterObject 호출은 적용되지 않습니다.

FreeAdapterObject 를 사용하여 AllocateAdapterChannelEx, GetScatterGatherListExBuildScatterGatherListEx 루틴에 대한 호출로 할당된 DMA 리소스의 할당을 취소할 수 있습니다. 드라이버가 이러한 루틴 중 하나를 동기적으로 호출하는 경우 ExecutionRoutine 매개 변수는 선택 사항이며 생략할 수 있습니다. 이 경우 드라이버는 어댑터 개체와 호출에 의해 할당된 맵 레지스터를 사용할 수 있습니다. 드라이버가 DMA 전송을 시작한 후 드라이버는 FreeAdapterObject 를 호출하여 어댑터 개체의 할당을 취소하고 필요한 경우 맵이 등록됩니다.

FreeAdapterChannel 루틴은 FreeAdapterObject와 유사합니다. FreeAdapterChannel 은 항상 어댑터 개체와 할당된 모든 맵 레지스터를 해제합니다. 이 동작은 AllocationAction = DeallocateObject인 경우 FreeAdapterObject의 동작과 유사합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 사용하여 사용할 수 있습니다.
대상 플랫폼 데스크톱
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
IRQL <= DISPATCH_LEVEL

추가 정보

AdapterControl

AdapterListControl

AllocateAdapterChannel

AllocateAdapterChannelEx

BuildScatterGatherListEx

DMA_ADAPTER

DMA_OPERATIONS

FreeAdapterChannel

FreeMapRegisters

GetScatterGatherListEx

IO_ALLOCATION_ACTION

IoGetDmaAdapter