DXGK_ALLOCATIONLIST structure (d3dkmddi.h)

The DXGK_ALLOCATIONLIST structure describes an allocation specification that is used in direct memory access (DMA) buffering.

Syntax

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;

Members

[in/out] hDeviceSpecificAllocation

An open handle to the allocation that is being referenced (that is, the handle that the driver returned in the hDeviceSpecificAllocation member of the DXGK_OPENALLOCATIONINFO structure for the allocation in a call to the driver's DxgkDdiOpenAllocation function).

[in/out] WriteOperation

Identifies whether the allocation can be written to. Setting this member to 1 indicates that the allocation can be written to anywhere in the DMA buffer. Setting this member is equivalent to setting the first bit of a 32-bit value (0x00000001).

[in/out] SegmentId

Specifies the identifier of a segment that the allocation was last paged in at. Setting this member to 0 indicates that no pre-patching information is available. Setting this member is equivalent to setting the second through sixth bit of a 32-bit value (0x0000002E).

[in] Reserved

Reserved. This member should be set to 0. Setting this member is equivalent to setting the remaining 26 bits (0xFFFFFFC0) of a 32-bit value to zeros.

[in/out] PhysicalAddress

A PHYSICAL_ADDRESS data type (which is defined as LARGE_INTEGER) that indicates the physical address, within the segment that SegmentId specifies, where the allocation was last paged-in at. This member is set to zero if no pre-patching information is available.

Supported starting with Windows 10.

[in/out] VirtualAddress

A D3DGPU_VIRTUAL_ADDRESS data type (which is defined as a ULONGLONG) that indicates the virtual address.

Supported starting with Windows 10.

Remarks

In the display miniport driver's DxgkDdiRender function, the driver generates a list of DXGK_ALLOCATIONLIST structures for allocation specifications that will be used in a direct memory access (DMA) buffer. The video memory manager uses the list to split and patch DMA buffers appropriately.

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dkmddi.h (include D3dkmddi.h)

See also

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DXGK_OPENALLOCATIONINFO

DxgkDdiCreateAllocation

DxgkDdiOpenAllocation

DxgkDdiRender