다음을 통해 공유


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

명령 버퍼의 시작에 대한 포인터입니다.

참고DxgkDdiRender 호출되면 디스플레이 미니포트 드라이버가 버퍼의 유효성을 검사해야 합니다. 드라이버가 이 멤버에 액세스하는 방법에 대한 중요한 정보는 DxgkDdiRender 설명 참조하세요.
 

[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 구조의 배열입니다.

참고DxgkDdiRender 호출되면 디스플레이 미니포트 드라이버가 버퍼의 유효성을 검사해야 합니다. 드라이버가 이 멤버에 액세스하는 방법에 대한 중요한 정보는 DxgkDdiRender 설명 참조하세요.
 

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

참고 항목

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender

DxgkDdiRenderKm

pfnRenderCb