DXGK_ALLOCATIONINFO 구조체(d3dkmddi.h)

DXGK_ALLOCATIONINFO 구조는 할당을 만들기 위한 매개 변수를 설명합니다.

구문

typedef struct _DXGK_ALLOCATIONINFO {
  VOID                       *pPrivateDriverData;
  UINT                       PrivateDriverDataSize;
  UINT                       Alignment;
  SIZE_T                     Size;
  SIZE_T                     PitchAlignedSize;
  DXGK_SEGMENTBANKPREFERENCE HintedBank;
  DXGK_SEGMENTPREFERENCE     PreferredSegment;
  UINT                       SupportedReadSegmentSet;
  UINT                       SupportedWriteSegmentSet;
  UINT                       EvictionSegmentSet;
  union {
    UINT MaximumRenamingListLength;
    UINT PhysicalAdapterIndex;
  };
  HANDLE                     hAllocation;
  union {
    DXGK_ALLOCATIONINFOFLAGS         Flags;
    DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 FlagsWddm2;
  };
  DXGK_ALLOCATIONUSAGEHINT   *pAllocationUsageHint;
  UINT                       AllocationPriority;
  DXGK_ALLOCATIONINFOFLAGS2  Flags2;
} DXGK_ALLOCATIONINFO;

멤버

pPrivateDriverData

[in] 프라이빗 데이터 블록에 대한 포인터입니다. 이 데이터는 각 할당에 대한 것이며 DXGKARG_CREATEALLOCATION 구조의 pPrivateDriverData 멤버와 다릅니다. 사용자 모드 디스플레이 드라이버는 이 데이터를 디스플레이 미니포트 드라이버에 전달할 수 있습니다. 그러나 Microsoft DirectX 그래픽 커널 하위 시스템이 공유 기본 또는 기타 잠금 가능한 표면을 설명하기 위해 이 데이터를 전달하는 경우 데이터는 DXGKARG_CREATEALLOCATION pAllocationInfo 멤버에서 배열의 첫 번째 요소로 전달됩니다.

PrivateDriverDataSize

[in] pPrivateDriverData의 개인 데이터 블록 크기(바이트)입니다.

Alignment

[out] 할당에 필요한 맞춤(바이트)입니다.

Size

[out] 할당에 필요한 크기(바이트)입니다. 크기 값은 네이티브 호스트 페이지 크기의 배수로 확장됩니다(예: x86 아키텍처의 경우 4KB). 디스플레이 미니포트 드라이버는 비디오 메모리 관리자에 대한 할당 크기를 지정합니다.

PitchAlignedSize

[out] 세그먼트에 대한 DXGK_SEGMENTDESCRIPTOR 구조체의 Flags 멤버에 있는 PitchAlignment 비트 필드 플래그로 지정된 피치 정렬 세그먼트에 있는 할당의 크기(바이트)입니다. 피치 정렬 세그먼트에서 할당이 지원되지 않는 경우(GPU[그래픽 처리 장치]는 일반적으로 이 유형의 세그먼트를 지원하지 않음) 드라이버는 PitchAlignedSize 의 값을 0으로 설정해야 합니다. 드라이버가 PitchAlignedSize에서 0이 아닌 값을 지정하는 경우 값은 Size 멤버의 값보다 크거나 같아야 합니다.

HintedBank

[out] 디스플레이 미니포트 드라이버가 비디오 메모리 관리자가 할당을 페이지 인하는 데 사용하는 것을 요청하는 은행 주문 기본 설정을 나타내는 DXGK_SEGMENTBANKPREFERENCE 구조입니다. 이 멤버를 지정하면 비디오 메모리 관리자는 PreferredSegment 멤버가 지정하는 DXGK_SEGMENTPREFERENCE 구조체의 SegmentId0 멤버에 의해 지정된 가장 선호하는 세그먼트에 대한 은행 정보를 사용합니다.

PreferredSegment

[out] 디스플레이 미니포트 드라이버가 비디오 메모리 관리자가 할당을 페이지 인하는 데 사용하는 것을 요청하는 기본 세그먼트 식별자를 나타내는 DXGK_SEGMENTPREFERENCE 구조체입니다.

SupportedReadSegmentSet

[out] 디스플레이 미니포트 드라이버가 읽기 작업을 위해 PreferredSegment 멤버에 설정할 수 있는 세그먼트 식별자입니다. 이러한 식별자가 나타내는 세그먼트는 디스플레이 미니포트 드라이버가 성능에 관계없이 비디오 메모리 관리자가 읽기 작업에 대한 할당을 페이지 인하는 데 사용하는 세그먼트입니다. 비트 0을 설정하면 첫 번째 세그먼트가 지원되고 비트 1을 설정하면 두 번째 세그먼트가 지원됨을 나타냅니다.

디스플레이 미니포트 드라이버는 읽기 작업에 지원되는 세그먼트에 대해서만 기본 설정을 지정할 수 있습니다. 비디오 메모리 관리자는 드라이버가 PreferredSegment 멤버에서 지원되지 않는 세그먼트에 대한 기본 설정을 시도하는 경우 어설션합니다.

SupportedWriteSegmentSet

[out] 디스플레이 미니포트 드라이버가 쓰기 작업을 위해 PreferredSegment 멤버에 설정할 수 있는 세그먼트 식별자입니다. 이러한 식별자가 나타내는 세그먼트는 성능에 관계없이 디스플레이 미니포트 드라이버가 비디오 메모리 관리자가 쓰기 작업에 대한 할당을 페이지 인하는 데 사용하도록 요청하는 세그먼트입니다. 비트 0을 설정하면 첫 번째 세그먼트가 지원되고 비트 1을 설정하면 두 번째 세그먼트가 지원됨을 나타냅니다.

디스플레이 미니포트 드라이버는 쓰기 작업에 지원되는 세그먼트에 대해서만 기본 설정을 지정할 수 있습니다. 비디오 메모리 관리자는 드라이버가 PreferredSegment 멤버에서 지원되지 않는 세그먼트에 대한 기본 설정을 시도하는 경우 어설션합니다.

EvictionSegmentSet

[out] 제거에 사용할 수 있는 세그먼트의 식별자입니다. 비트 0을 설정하면 첫 번째 세그먼트가 제거에 사용될 수 있음을 나타내고, 비트 1을 설정하면 두 번째 세그먼트가 제거에 사용될 수 있음을 나타냅니다.

이 멤버는 조리개 세그먼트만 지정할 수 있습니다. 드라이버가 제거에 사용할 유효한 세그먼트를 지정하는 경우 비디오 메모리 관리자는 제거 프로세스를 가속화하기 위해 해당 조리개 세그먼트에 리소스를 할당하려고 시도합니다. 드라이버가 0을 지정하는 경우 비디오 메모리 관리자는 드라이버를 호출하여 조리개 세그먼트를 통해 기본 페이지를 매핑하지 않고 할당 내용을 페이징된 잠긴 시스템 메모리로 직접 전송합니다.

MaximumRenamingListLength

[out] 할당에 대한 이름 바꾸기 목록의 최대 길이입니다. 이름 바꾸기 목록에 대한 자세한 내용은 할당 이름 바꾸기 요청을 참조하세요.

이 멤버에 대한 지원은 Windows 10 및 WDDM v2로 시작되었습니다.

PhysicalAdapterIndex

[out] 실제 어댑터의 인덱스입니다.

이 멤버에 대한 지원은 Windows 10 및 WDDM v2로 시작되었습니다.

hAllocation

[out] 할당에 대한 핸들입니다. 디스플레이 미니포트 드라이버는 이 멤버를 할당에 대한 프라이빗 추적 구조를 참조하는 데 사용할 수 있는 값으로 설정해야 합니다.

Flags

[out] 비트 필드 플래그에서 할당에 대한 속성을 식별하는 DXGK_ALLOCATIONINFOFLAGS 구조체입니다. 이러한 속성은 만들 할당 유형을 나타냅니다. 디스플레이 미니포트 드라이버는 비디오 메모리 관리자에 대해 이러한 플래그를 지정합니다. WDDM 2.0 이전의 모든 WDDM 버전을 대상으로 하는 드라이버는 플래그를 사용해야 합니다 . WDDM 버전 >= WDDM 2.0을 대상으로 하는 드라이버는 FlagsWddm2를 사용해야 합니다.

FlagsWddm2

[out] 비트 필드 플래그에서 할당에 대한 속성을 식별하는 DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 구조체입니다. 이러한 속성은 만들 할당 유형을 나타냅니다. 디스플레이 미니포트 드라이버는 비디오 메모리 관리자에 대해 이러한 플래그를 지정합니다. WDDM 버전 >= WDDM 2.0을 대상으로 하는 드라이버는 FlagsWddm2를 사용해야 합니다. WDDM 2.0 이전의 WDDM 버전을 대상으로 하는 드라이버는 플래그를 사용해야 합니다.

pAllocationUsageHint

[out] 메모리 관리자가 할당을 사용하는 방법을 결정하는 데 사용하는 DXGK_ALLOCATIONUSAGEHINT 구조체에 대한 포인터입니다.

AllocationPriority

[out] 할당의 시작 우선 순위 수준을 지정하는 UINT 값입니다.

드라이버는 각 할당에 대한 적절한 우선 순위 수준을 결정합니다. 우선 순위 수준에 대한 자세한 내용은 pfnSetPriorityCb 함수의 설명 섹션을 참조하세요. 할당에 대한 우선 순위 수준이 드라이버에 문제가 되지 않는 경우 드라이버는 모든 우선 순위 수준을 D3DDDI_ALLOCATIONPRIORITY_NORMAL 설정해야 합니다. 0은 잘못된 초기 할당 우선 순위입니다.

Flags2

[out] 할당에 대한 추가 속성을 포함하는 DXGK_ALLOCATIONINFOFLAGS2 구조체입니다. Windows 11(WDDM 3.0)부터 지원됩니다.

설명

WDDM v2를 사용하면 읽기 및 쓰기 세그먼트 집합이 더 이상 구분되지 않도록 DXGK_ALLOCATIONINFO 구조가 변경되었습니다. 표면을 만드는 동안 비디오 메모리 관리자는 SupportedReadSegmentSet 값을 무시하고 SupportedWriteSegmentSet에서 제공하는 세그먼트 집합만 사용합니다. 드라이버는 이 값이 할당에서 의도한 용도로 사용할 수 있는 세그먼트 집합을 정확하게 나타내는지 확인해야 합니다.

지원되는 읽기 세그먼트 집합을 무시한다고 해서 더 이상 지원되지 않는다는 의미는 아니지만 이러한 집합 간에 더 이상 차이가 없어야 하며 비디오 메모리 관리자는 단일 세그먼트 집합에서 할당할 적절한 세그먼트를 선택할 수 있습니다.

요구 사항

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

추가 정보

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFOFLAGS

DXGK_ALLOCATIONLIST

DXGK_ALLOCATIONUSAGEHINT

DXGK_SEGMENTBANKPREFERENCE

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender

pfnAllocateCb