D3DDDI_ALLOCATIONINFO2 구조체(d3dukmdt.h)

D3DDDI_ALLOCATIONINFO2 구조는 할당을 설명합니다.

구문

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  void                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  UINT                                  PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID        VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
      UINT OverridePriority : 1;
#if ...
      UINT Reserved : 29;
#elif
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
  union {
    UINT                     Priority;
    D3DKMT_ALIGN64 ULONG_PTR Unused;
  };
#if ...
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[5];
#else
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[6];
#endif
} D3DDDI_ALLOCATIONINFO2;

멤버

hAllocation

[out] 할당에 대한 커널 모드 핸들을 나타내는 D3DKMT_HANDLE 핸들입니다. 이 핸들은 Direct3D 런타임의 pfnAllocateCb 함수가 D3DDDICB_ALLOCATE 구조체의 hKMResource 멤버에서 반환하는 커널 모드 리소스 핸들(NULL이 아닌 경우)과 연결됩니다. 사용자 모드 표시 드라이버는 이 커널 모드 할당 핸들을 사용하여 명령 버퍼의 할당을 참조할 수 있습니다.

D3DKMT_ALIGN64

hSectionpSystemMem과 공용 구조체.

D3DKMT_ALIGN64.hSection

[in] 유효한 섹션 개체에 대한 핸들입니다. D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection이 설정된 경우 hSection을 사용합니다.

D3DKMT_ALIGN64.pSystemMem

[in] 미리 할당된 시스템 메모리에 대한 포인터입니다. D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection이 설정되지 않은 경우 pSystemMem을 사용합니다.

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

[in] 프라이빗 데이터의 크기(바이트)입니다.

VidPnSourceId

[in] 기본 화면에 할당된 경우 비디오 현재 네트워크(VidPN) 토폴로지 경로에 있는 비디오 원본의 0부터 시작하는 VidPN 식별 번호입니다. 드라이버는 기본 할당 유형에 대해서만 VidPnSourceId 를 설정해야 하며 다른 유형의 할당에는 설정하지 않아야 합니다. 드라이버가 pfnAllocateCb 함수 호출에서 다른 할당 형식에 대해 VidPnSourceId를 설정하는 경우 pfnAllocateCb는 D3DDDI_ID_NOTAPPLICABLE 반환합니다.

DirectX 그래픽 커널 하위 시스템이 공유 기본 화면에 대한 할당 생성을 시작하면 디스플레이 미니포트 드라이버는 DXGK_ALLOCATIONINFO 구조체의 pPrivateDriverData 멤버가 가리키는 D3DKMDDI_SHAREDPRIMARYSURFACEDATA 구조체의 VidPnSourceId 멤버에서 식별 번호를 확인할 수 있습니다.

Flags

[in] 할당 유형을 식별하는 구조체 또는 32비트 값을 포함하는 공용 구조체입니다.

Flags.Primary

[in] 할당이 데스크톱의 일부인지 여부를 지정하는 UINT입니다. 이러한 할당은 CPU에서 암시적으로 액세스할 수 있습니다. 기본 할당은 만들 때 고정되거나 생성 시 고정되지 않을 수 있습니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.

Flags.Stereo

[in] Windows 8(WDDM 1.2)부터 지원됩니다. 할당이 스테레오 기본 할당인지 여부를 지정하는 UINT입니다. 스테레오 멤버는 기본 멤버가 설정된 경우에만 설정할 수 있습니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000002)의 두 번째 비트를 설정하는 것과 같습니다.

Flags.OverridePriority

[in] Windows 10 버전 1703(WDDM 2.2)부터 지원됩니다. 사용자 모드 그래픽 드라이버에 의해 설정된 우선 순위를 재정의합니다.

Flags.Reserved

[in] 이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

Flags.Value

[in] 할당 유형을 식별하는 32비트 값입니다.

GpuVirtualAddress

[out] 생성된 할당의 GPU 가상 주소입니다.

Priority

[in] 할당의 우선 순위입니다.

Unused

사용되지 않습니다.

Reserved[5]

Reserved[6]

설명

사용자 모드 표시 드라이버가 D3DDDI_ALLOCATIONINFO Flags 멤버에서 기본 비트 필드 플래그를 설정하는 경우 디스플레이 미니포트 드라이버의 DxgkDdiCreateAllocation 함수에 대한 호출에서 할당을 위해 DXGKARG_CREATEALLOCATION 구조체의 pAllocationInfo 멤버에 있는 DXGK_ALLOCATIONINFO구조에 특정 제한이 적용됩니다. 이러한 제한에는 다음이 포함됩니다.

  • 할당은 기본 설정에 따라 할당됩니다. 그렇지 않으면 할당 기본값은 지원되는 쓰기 세그먼트 집합으로 설정되며 쓰기 세그먼트 집합의 지정된 모든 세그먼트는 CPU에 액세스할 수 있어야 합니다.

  • 디스플레이 미니포트 드라이버는 DXGK_ALLOCATIONINFOFlags 멤버에서 다음 비트 필드 플래그를 설정할 수 없습니다.

  • PermanentSysMem

  • 캐시됨

  • 보호됨

  • ExistingSysMem

  • ExistingKernelSysMem

D3DDDI_ID_NOTAPPLICABLE 상수는 D3dukmdt.h에 정의됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7
머리글 d3dukmdt.h

추가 정보

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb