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

버스 master 어댑터 또는 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)

추가 정보

AllocateCommonBuffer

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter