PFREE_MAP_REGISTERS 콜백 함수(wdm.h)
FreeMapRegisters 루틴은 AllocateAdapterChannel 호출에서 저장된 맵 레지스터 집합을 해제합니다.
구문
PFREE_MAP_REGISTERS PfreeMapRegisters;
void PfreeMapRegisters(
[in] PDMA_ADAPTER DmaAdapter,
[in] PVOID MapRegisterBase,
[in] ULONG NumberOfMapRegisters
)
{...}
매개 변수
[in] DmaAdapter
버스 master 어댑터 또는 DMA 컨트롤러를 나타내는 IoGetDmaAdapter에서 반환된 DMA_ADAPTER 구조체에 대한 포인터입니다.
[in] MapRegisterBase
DMA 작업에 할당된 맵 레지스터를 지정합니다. 시스템은 이 값을 드라이버의 AdapterControl 루틴에 전달합니다.
[in] NumberOfMapRegisters
해제할 맵 레지스터 수를 지정합니다. 이 값은 AllocateAdapterChannel에 대한 이전 호출에 지정된 번호와 일치해야 합니다.
반환 값
없음
설명
FreeMapRegisters 는 이름으로 직접 호출할 수 있는 시스템 루틴이 아닙니다. 이 루틴은 DMA_OPERATIONS 구조에서 반환된 주소의 포인터로만 호출할 수 있습니다. 드라이버는 IoGetDmaAdapter를 호출하여 이 루틴의 주소를 가져옵니다.
버스 master 디바이스의 드라이버가 현재 패킷 기반 DMA 전송 요청을 완료하면 FreeMapRegisters를 호출하여 AllocateAdapterChannel 호출에 의해 이전에 할당된 맵 레지스터를 해제하고 AdapterControl 루틴이 DeallocateObjectKeepRegisters를 반환했기 때문에 유지됩니다. 드라이버는 FlushAdapterBuffers를 호출한 후 FreeMapRegisters를 호출해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
IRQL | DISPATCH_LEVEL |
DDI 규정 준수 규칙 | IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm) |