DXGKARG_RENDER 구조체(d3dkmddi.h)
DXGKARG_RENDER 구조는 명령 버퍼에서 DMA(직접 메모리 액세스) 버퍼를 생성하기 위한 멤버를 설명합니다.
구문
typedef struct _DXGKARG_RENDER {
[in] const VOID *pCommand;
[in] UINT CommandLength;
[out] VOID *pDmaBuffer;
[in] UINT DmaSize;
[in] VOID *pDmaBufferPrivateData;
[in] UINT DmaBufferPrivateDataSize;
[in] DXGK_ALLOCATIONLIST *pAllocationList;
[in] UINT AllocationListSize;
[in] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListIn;
[in] UINT PatchLocationListInSize;
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
[in] UINT PatchLocationListOutSize;
[in/out] UINT MultipassOffset;
[in] UINT DmaBufferSegmentId;
[in] PHYSICAL_ADDRESS DmaBufferPhysicalAddress;
} DXGKARG_RENDER;
멤버
[in] pCommand
명령 버퍼의 시작 부분에 대한 포인터입니다.
[in] CommandLength
pCommand가 가리키는 명령 버퍼의 크기(바이트)입니다.
[out] pDmaBuffer
4KB에 맞춰진 DMA 버퍼의 시작 부분에 대한 포인터입니다. 이 버퍼는 DMA를 통해 그래픽 하드웨어로 보낼 수 있습니다. 디스플레이 미니포트 드라이버가 DxgkDdiRender 또는 DxgkDdiRenderKm 함수에서 반환되기 전에 드라이버는 pDmaBuffer 를 드라이버가 쓴 마지막 바이트 뒤에 오는 다음 빈 바이트로 설정해야 합니다. 또는 더 이상 공간을 사용할 수 없는 경우 드라이버가 위치(버퍼 공간 너머의 1바이트)를 가리킵니다. 버퍼가 충분히 크면 이 위치가 올바르었을 것입니다.
[in] DmaSize
pDmaBuffer가 가리키는 DMA 버퍼의 크기(바이트)입니다.
[in] pDmaBufferPrivateData
pDmaBuffer가 가리키는 DMA 버퍼를 생성하는 데 사용되는 드라이버 상주 프라이빗 데이터 구조에 대한 포인터입니다.
[in] DmaBufferPrivateDataSize
pDmaBufferPrivateData가 현재 작업에 대해 가리키는 프라이빗 데이터 구조에 남아 있는 바이트 수입니다.
[in] pAllocationList
DMA 버퍼가 참조하는 할당 목록에 대한 DXGK_ALLOCATIONLIST 구조의 배열입니다. 최적의 성능을 위해 참조되는 각 할당이 한 번 표시되어야 합니다.
[in] AllocationListSize
pAllocationList가 지정하는 배열에서 사용 가능한 요소 수로, DMA를 통해 그래픽 하드웨어로 보낼 할당 사양의 수를 나타냅니다.
[in] pPatchLocationListIn
사용자 모드 표시 드라이버가 pfnRenderCb 함수를 호출할 때 제공하는 패치 위치 목록에 대한 D3DDDI_PATCHLOCATIONLIST 구조의 배열입니다.
[in] PatchLocationListInSize
pPatchLocationListIn이 지정하는 패치 위치 목록의 요소 수입니다.
[in/out] pPatchLocationListOut
디스플레이 미니포트 드라이버가 채우는 패치 위치 목록의 D3DDDI_PATCHLOCATIONLIST 구조 배열입니다. 드라이버가 DxgkDdiRender 또는 DxgkDdiRenderKm 함수에 대한 호출에서 반환하기 전에 드라이버는 pPatchLocationListOut 을 드라이버가 업데이트한 마지막 D3DDDI_PATCHLOCATIONLIST 요소 다음에 오는 다음 D3DDDI_PATCHLOCATIONLIST 요소로 설정해야 합니다.
[in] PatchLocationListOutSize
pPatchLocationListOut에서 지정하는 패치 위치 목록의 요소 수입니다. 디스플레이 미니포트 드라이버는 전체 목록의 모든 요소를 채울 필요가 없습니다. 드라이버는 DMA 버퍼 내에서 패치 위치를 설명하는 데 필요한 요소만 사용해야 합니다.
[in/out] MultipassOffset
디스플레이 미니포트 드라이버의 DxgkDdiRender 또는 DxgkDdiRenderKm 함수가 새 DMA 버퍼를 얻기 위해 STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER 반환해야 하는 경우 렌더링 작업의 진행률을 지정하는 UINT 값입니다. 드라이버의 DxgkDdiRender 또는 DxgkDdiRenderKm 함수가 먼저 새 명령 버퍼로 호출되면 MultipassOffset 이 0으로 초기화됩니다. 드라이버가 DxgkDdiRender 또는 DxgkDdiRenderKm 호출에서 반환되기 전에 드라이버는 동일한 명령 버퍼를 사용하여 후속 DxgkDdiRender 또는 DxgkDdiRenderKm 호출에 대한 번역 진행률을 표시하도록 이 멤버를 설정합니다. DirectX 그래픽 커널 하위 시스템은 값을 더 이상 변경하지 않습니다.
[in] DmaBufferSegmentId
DMA 버퍼가 페이징된 메모리 세그먼트의 식별자입니다. 식별자가 0이면 DMA 버퍼가 올바르게 페이징되지 않습니다.
[in] DmaBufferPhysicalAddress
DMA 버퍼가 페이징된 실제 주소를 나타내는 PHYSICAL_ADDRESS 데이터 형식(LARGE_INTEGER 정의됨)입니다. 실제 주소가 0이면 DMA 버퍼가 올바르게 페이징되지 않습니다.
설명
DxgkDdiRenderKm 함수에 대한 지원은 GDI 하드웨어 가속을 지원하는 디스플레이 어댑터용 Windows 7부터 추가됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
머리글 | d3dkmddi.h(D3dkmddi.h 포함) |