DMDLL_PCIAllocateDMAMemory
DMA에 사용할 수 있는 물리적으로 연속적인 메모리를 할당하고, 해당하는 주소정보를 리턴합니다
Description
int DMDLL_PCIAllocateDMAMemory(
IN DMHANDLE OpenedHandle,
IN DMA_MEMORY_REQ *pDMARequest,
OUT DMA_MEMORY *pResource
)
Parameters
OpenedHandle
작업중이던 디바이스 핸들, DMDLL_OpenDeviceForInterfaceDeviceStack()함수를 통해서 얻은 권한핸들이어야 합니다
pDMARequest
할당하려는 메모리의 요구조건을 제공합니다
pResource
할당된 메모리의 정보를 리턴합니다
Return Values
return int
작업이 성공할 경우 DMSTAT_SUCCESS 리턴
Changelog
Examples
DMA_MEMORY_REQ DMAReq; // 요청하는 내용
DMA_MEMORY DMARes; // 결과가 얻어지는 내용
// 아래의 내용은 1MBytes의 DMA를 위한 메모리를 할당요청하는 예재이다.
DMAReq.Size = 0x100000; // 1MBytes
DMAReq.HighestPhysicalAddress = 0xFFFFFFFF; // 32bit 최대
// 64비트까지 가능하다
DMAReq.LowestPhysicalAddress = 0x0;
DMAReq.BoundaryAddressMultiple = 0x100000;
// Alignment, 1MB
dmStatus = DMDLL_PCIAllocateDMAMemory(DMHandle, &DMAReq, &DMARes);