D3DDDI_ALLOCATIONINFO2 구조체(d3dukmdt.h)
D3DDDI_ALLOCATIONINFO2 구조는 할당을 설명합니다.
통사론
typedef struct _D3DDDI_ALLOCATIONINFO2 {
D3DKMT_HANDLE hAllocation;
union {
HANDLE hSection;
const VOID *pSystemMem;
} D3DKMT_ALIGN64;
VOID *pPrivateDriverData;
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
hSection 및 pSystemMem.
D3DKMT_ALIGN64.hSection
[in] 유효한 섹션 개체에 대한 핸들입니다. D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection 설정된 경우 hSection 사용합니다.
D3DKMT_ALIGN64.pSystemMem
[in] 미리 할당된 시스템 메모리에 대한 포인터입니다. D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection 설정되지 않은 경우 pSystemMem 사용합니다.
pPrivateDriverData
[in/out,opt] 디스플레이 미니포트 드라이버에서 할당을 만드는 데 필요할 수 있는 선택적 프라이빗 데이터가 포함된 버퍼에 대한 포인터입니다. 디스플레이 미니포트 드라이버는 버퍼의 데이터를 반환할 수도 있습니다. 버퍼의 내용이 디스플레이 미니포트 드라이버에 전달되면 콘텐츠는 디스플레이 미니포트 드라이버에서 처리할 수 있는 형식이어야 합니다.
PrivateDriverDataSize
[in] 프라이빗 데이터의 크기(바이트)입니다.
VidPnSourceId
[in] 기본 화면에 대한 할당인 경우 비디오 프레젠테이션 네트워크(VidPN) 토폴로지 경로에 있는 비디오 원본의 0부터 시작하는 VidPN 식별 번호입니다. 드라이버는 기본 할당 유형에 대해서만 VidPnSourceId
DirectX 그래픽 커널 하위 시스템이 공유 기본 화면에 대한 할당 생성을 시작하면 디스플레이 미니포트 드라이버는 DXGK_ALLOCATIONINFO 구조체의 pPrivateDriverData 멤버가 가리키는 D3DKMDDI_SHAREDPRIMARYSURFACEDATA 구조체의 VidPnSourceId 멤버의 ID 번호를 확인할 수 있습니다.
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
D3DKMDDI_SHAREDPRIMARYSURFACEDATA
DxgkDdiCreateAllocation