PFREE_COMMON_BUFFER 콜백 함수(wdm.h)
FreeCommonBuffer 루틴은 버퍼에서 사용하는 모든 리소스와 함께 AllocateCommonBuffer의해 할당된 공통 버퍼를 해제합니다.
통사론
PFREE_COMMON_BUFFER PfreeCommonBuffer;
void PfreeCommonBuffer(
[in] PDMA_ADAPTER DmaAdapter,
[in] ULONG Length,
[in] PHYSICAL_ADDRESS LogicalAddress,
[in] PVOID VirtualAddress,
[in] BOOLEAN CacheEnabled
)
{...}
매개 변수
[in] DmaAdapter
버스 마스터 어댑터 또는 DMA 컨트롤러를 나타내는 IoGetDmaAdapter 반환된 DMA_ADAPTER 구조체에 대한 포인터입니다.
[in] Length
할당 취소할 바이트 수를 지정합니다.
[in] LogicalAddress
할당된 메모리 범위의 논리적 주소를 지정합니다.
[in] VirtualAddress
할당된 메모리 범위의 해당 가상 주소에 대한 포인터입니다.
[in] CacheEnabled
할당된 메모리가 캐시되는지 여부를 나타냅니다.
반환 값
없음
발언
freeCommonBuffer 이름으로 직접 호출할 수 있는 시스템 루틴이 아닙니다. 이 루틴은 DMA_OPERATIONS 구조에서 반환된 주소의 포인터로만 호출할 수 있습니다. 드라이버는 IoGetDmaAdapter호출하여 이 루틴의 주소를 가져옵니다.
공통 버퍼를 해제하기 위해 드라이버는 FreeCommonBuffer 호출하여 논리 주소와 가상 주소의 매핑을 모두 해제합니다. FreeCommonBuffer 전달된 매개 변수는 AllocateCommonBuffer전달되고 반환된 매개 변수와 정확히 일치해야 합니다. 드라이버는 할당된 공통 버퍼의 일부를 해제할 수 없습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 바탕 화면 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | IrqlDispatch(wdm) |