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 포함) |