DXGK_DEVICEINFO 구조체(d3dkmddi.h)

DXGK_DEVICEINFO 구조는 디스플레이 미니포트 드라이버에서 Microsoft DirectX 그래픽 커널 하위 시스템에 필요한 매개 변수를 설명합니다.

구문

typedef struct _DXGK_DEVICEINFO {
  [out] UINT                 DmaBufferSize;
  [out] UINT                 DmaBufferSegmentSet;
  [out] UINT                 DmaBufferPrivateDataSize;
  [out] UINT                 AllocationListSize;
  [out] UINT                 PatchLocationListSize;
  [out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;

멤버

[out] DmaBufferSize

DMA(직접 메모리 액세스)를 통해 하드웨어로 전송되는 하드웨어 명령 버퍼의 크기(바이트)입니다.

DMA 버퍼는 디바이스를 만든 후 증가하고 축소할 수 있습니다. 그러나 DMA 버퍼는 DmaBufferSize 에서 지정하는 시작 크기보다 작게 축소할 수 없습니다.

[out] DmaBufferSegmentSet

GPU(그래픽 처리 장치)에서 DMA 버퍼에 액세스할 수 있도록 해야 하는 세그먼트의 식별자입니다.

[out] DmaBufferPrivateDataSize

각 DMA 버퍼와 연결된 드라이버 상주 프라이빗 데이터 구조의 크기(바이트)입니다. 이 프라이빗 데이터 구조에 대한 메모리는 페이지가 없는 풀에서 할당됩니다. 드라이버가 DmaBufferPrivateDataSize에서 0을 지정하는 경우 프라이빗 데이터 구조에 대한 메모리가 할당되지 않습니다.

DMA 버퍼와 연결된 프라이빗 데이터 구조는 DMA 버퍼를 만들 때 0으로 초기화됩니다. DMA 버퍼의 수명 동안 비디오 메모리 관리자는 DMA 버퍼와 연결된 프라이빗 데이터 구조에 액세스하지 않습니다.

[out] AllocationListSize

할당 배열의 요소 시작 수(즉, DXGK_ALLOCATIONLIST 구조의 배열)입니다. 이 숫자는 드라이버가 드라이버의 DxgkDdiPresentDxgkDdiRender 함수에 대한 호출에서 DXGKARG_PRESENTDXGKARG_RENDER 구조의 pAllocationList 멤버에 포함되도록 요청하는 할당의 시작 수입니다.

할당 목록은 디바이스를 만든 후 증가 및 축소할 수 있습니다. 그러나 할당 목록은 AllocationListSize 에서 지정하는 시작 크기보다 작게 축소할 수 없습니다.

[out] PatchLocationListSize

사용자 모드 및 커널 모드에서 디바이스에 대한 패치 위치 배열(즉, D3DDDI_PATCHLOCATIONLIST 구조의 배열)의 시작 요소 수입니다. 이 숫자는 드라이버가 해당 DxgkDdiRender 함수에 대한 호출에서 DXGKARG_RENDER 구조체의 pPatchLocationListIn 멤버에 있도록 요청하는 패치 위치의 시작 수입니다.

패치 위치 목록은 디바이스를 만든 후 증가하고 축소할 수 있습니다. 그러나 패치 위치 목록은 PatchLocationListSize 에서 지정하는 시작 크기보다 작게 축소할 수 없습니다.

[out] Flags

디바이스에 대한 정보를 비트 필드 플래그로 식별하는 DXGK_DEVICEINFOFLAGS 구조체입니다.

설명

디스플레이 미니포트 드라이버는 DmaBufferSizeAllocationListSize 멤버의 값을 지정하여 다음을 보장합니다.

  • DirectX 그래픽 하위 시스템은 디스플레이 미니포트 드라이버의 DxgkDdiPresent 함수를 사용하여 DMA 버퍼를 하나만 사용하여 모든 시나리오에 대해 하나 이상의 RECT 구조를 표시할 수 있습니다.
  • DMA 및 할당 목록 버퍼의 크기는 여러 버퍼 간에 분할할 수 없는 하나 이상의 명령을 보유할 수 있을 만큼 큽니다.
  • DMA 및 할당 목록 버퍼의 크기는 설치 및 DMA 오버헤드를 방지할 수 있을 만큼 충분히 큽니다.
디스플레이 미니포트 드라이버는 DmaBufferSegmentSet 멤버에서 조리개 세그먼트만 지정할 수 있습니다. 드라이버가 메모리 세그먼트를 지정하면 디바이스 만들기 오류가 발생합니다.

드라이버가 DmaBufferSegmentSet 를 0으로 설정하면 비디오 메모리 관리자는 DMA 버퍼에 대해 매핑된 쓰기 결합 메모리인 연속 페이징 잠금 메모리를 할당합니다. 따라서 GPU는 AGP 조리개 외부에서 발생하는 AGP 전송이 허용되지 않는 시스템에서 PCI 주기를 사용하여 DMA 버퍼에 액세스해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
머리글 d3dkmddi.h(D3dkmddi.h 포함)

추가 정보

D3DDDI_PATCHLOCATIONLIST

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_DEVICEINFOFLAGS

DxgkDdiCreateDevice

DxgkDdiPresent

DxgkDdiRender