DXGK_DEVICEINFO - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// d3dkmddi.h

typedef struct _DXGK_DEVICEINFO {
  [out] UINT                 DmaBufferSize;
  [out] UINT                 DmaBufferSegmentSet;
  [out] UINT                 DmaBufferPrivateDataSize;
  [out] UINT                 AllocationListSize;
  [out] UINT                 PatchLocationListSize;
  [out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-d3dkmddi-_dxgk_deviceinfo)

_DXGK_DEVICEINFO structure

Description

The DXGK_DEVICEINFO structure describes parameters that the Microsoft DirectX graphics kernel subsystem requires from the display miniport driver.

Members

DmaBufferSize [out]

The size, in bytes, of the buffer of hardware commands that is sent through direct memory access (DMA) to the hardware.

The DMA buffer can grow and shrink after the device is created; however, the DMA buffer can never shrink smaller than the starting size that DmaBufferSize specifies.

DmaBufferSegmentSet [out]

The identifiers of the segments where the DMA buffers should be made accessible to the graphics processing unit (GPU).

DmaBufferPrivateDataSize [out]

The size, in bytes, of the driver-resident private data structure that is associated with each DMA buffer. Memory for this private data structure is allocated from nonpaged pool. If the driver specifies zero in DmaBufferPrivateDataSize, no memory is allocated for the private data structure.

The private data structure that is associated with a DMA buffer is initialized to zero when the DMA buffer is created. During the lifetime of the DMA buffer, the video memory manager never accesses the private data structure that is associated with the DMA buffer.

AllocationListSize [out]

The starting number of elements in an array of allocations (that is, an array of DXGK_ALLOCATIONLIST structures). This number is the starting number of allocations that the driver requests to be in the pAllocationList members of DXGKARG_PRESENT and DXGKARG_RENDER structures in calls to the driver's DxgkDdiPresent and DxgkDdiRender functions.

The allocation list can grow and shrink after the device is created; however, the allocation list can never shrink smaller than the starting size that AllocationListSize specifies.

PatchLocationListSize [out]

The starting number of elements in an array of patch locations (that is, an array of D3DDDI_PATCHLOCATIONLIST structures) for the device in user mode and kernel mode. This number is the starting number of patch locations that the driver requests to be in the pPatchLocationListIn members of DXGKARG_RENDER structures in calls to its DxgkDdiRender function.

The patch-location list can grow and shrink after the device is created; however, the patch-location list can never shrink smaller than the starting size that PatchLocationListSize specifies.

Flags [out]

A DXGK_DEVICEINFOFLAGS structure that identifies, in bit-field flags, information about the device.

Remarks

The display miniport driver specifies values for the DmaBufferSize and AllocationListSize members to guarantee the following:

The display miniport driver can specify only aperture segments in the DmaBufferSegmentSet member; if the driver specifies a memory segment, a device-creation failure occurs.

If the driver sets DmaBufferSegmentSet to 0, the video memory manager allocates contiguous paged-locked memory, which is mapped write-combined memory, for the DMA buffers. Therefore, the GPU must access DMA buffers by using PCI cycles on systems where AGP transfers that occur outside the AGP aperture are not permitted.

See also

D3DDDI_PATCHLOCATIONLIST

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_DEVICEINFOFLAGS

DxgkDdiCreateDevice

DxgkDdiPresent

DxgkDdiRender