다음을 통해 공유


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 포함)

추가 정보

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DXGK_OPENALLOCATIONINFO

DxgkDdiCreateAllocation

DxgkDdiOpenAllocation

DxgkDdiRender