DXGK_ALLOCATIONLIST 구조체(d3dkmddi.h)
DXGK_ALLOCATIONLIST 구조는 DMA(직접 메모리 액세스) 버퍼링에 사용되는 할당 사양을 설명합니다.
구문
typedef struct _DXGK_ALLOCATIONLIST
{
HANDLE hDeviceSpecificAllocation;
struct
{
UINT WriteOperation : 1; // 0x00000001
UINT SegmentId : 5; // 0x0000002E
UINT Reserved : 26; // 0xFFFFFFC0
};
#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
union
{
PHYSICAL_ADDRESS PhysicalAddress;
D3DGPU_VIRTUAL_ADDRESS VirtualAddress;
};
#else // (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WDDM2_0)
PHYSICAL_ADDRESS PhysicalAddress;
#endif // (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
} DXGK_ALLOCATIONLIST;
멤버
[in/out] hDeviceSpecificAllocation
참조되는 할당에 대한 열린 핸들입니다(즉, 드라이버의 DxgkDdiOpenAllocation 함수 호출에서 할당을 위해 DXGK_OPENALLOCATIONINFO 구조체의 hDeviceSpecificAllocation 멤버에서 드라이버가 반환한 핸들).
[in/out] WriteOperation
할당을 쓸 수 있는지 여부를 식별합니다. 이 멤버를 1로 설정하면 DMA 버퍼의 아무 곳에나 할당을 쓸 수 있습니다. 이 멤버를 설정하는 것은 32비트 값(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.
[in/out] SegmentId
할당이 마지막으로 페이징된 세그먼트의 식별자를 지정합니다. 이 멤버를 0으로 설정하면 사전 패치 정보를 사용할 수 없음을 나타냅니다. 이 멤버를 설정하는 것은 32비트 값(0x0000002E)의 두 번째 비트에서 여섯 번째 비트로 설정하는 것과 같습니다.
[in] Reserved
예약되어 있습니다. 이 멤버는 0으로 설정해야 합니다. 이 멤버를 설정하는 것은 32비트 값의 나머지 26비트(0xFFFFFFC0)를 0으로 설정하는 것과 같습니다.
[in/out] PhysicalAddress
segmentId가 지정하는 세그먼트 내에서 실제 주소를 나타내는 PHYSICAL_ADDRESS 데이터 형식(LARGE_INTEGER 정의됨)입니다. 여기서 할당이 마지막으로 페이징되었습니다. 사전 패치 정보를 사용할 수 없는 경우 이 멤버는 0으로 설정됩니다.
Windows 10 부터 지원합니다.
[in/out] VirtualAddress
가상 주소를 나타내는 D3DGPU_VIRTUAL_ADDRESS 데이터 형식( ULONGLONG으로 정의됨)입니다.
Windows 10 부터 지원합니다.
설명
디스플레이 미니포트 드라이버의 DxgkDdiRender 함수에서 드라이버는 DMA(직접 메모리 액세스) 버퍼에 사용되는 할당 사양에 대한 DXGK_ALLOCATIONLIST 구조 목록을 생성합니다. 비디오 메모리 관리자는 목록을 사용하여 DMA 버퍼를 적절하게 분할하고 패치합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
머리글 | d3dkmddi.h(D3dkmddi.h 포함) |