DXGK_ALLOCATIONINFO 구조체(d3dkmddi.h)

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

구문

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

구성원

[in] pPrivateDriverData

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

[in] PrivateDriverDataSize

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

[out] Alignment

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

[out] Size

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

[out] PitchAlignedSize

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

[out] HintedBank

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

[out] PreferredSegment

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

[out] SupportedReadSegmentSet

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

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

[out] SupportedWriteSegmentSet

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

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

[out] EvictionSegmentSet

제거에 사용할 수 있는 세그먼트의 식별자입니다. 비트 0을 설정하면 첫 번째 세그먼트를 제거에 사용할 수 있으며 비트 1을 설정하면 두 번째 세그먼트를 제거에 사용할 수 있음을 나타냅니다.

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

[out] MaximumRenamingListLength

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

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

[out] PhysicalAdapterIndex

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

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

[out] hAllocation

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

[out] Flags

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

[out] FlagsWddm2

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

[out] pAllocationUsageHint

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

[out] AllocationPriority

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

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

Flags2

설명

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

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

요구 사항

   
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
헤더 d3dkmddi.h(D3dkmddi.h 포함)

참고 항목

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFOFLAGS

DXGK_ALLOCATIONLIST

DXGK_ALLOCATIONUSAGEHINT

DXGK_SEGMENTBANKPREFERENCE

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender

pfnAllocateCb