D3DKMDT_STAGINGSURFACEDATA structure (d3dkmdt.h)

The D3DKMDT_STAGINGSURFACEDATA structure describes the lockable staging surface that data is transferred into from an application's back buffer.

Syntax

typedef struct _D3DKMDT_STAGINGSURFACEDATA {
  [in]  UINT Width;
  [in]  UINT Height;
  [out] UINT Pitch;
} D3DKMDT_STAGINGSURFACEDATA;

Members

[in] Width

The width of the staging buffer, in pixels.

[in] Height

The height of the staging buffer, in pixels.

[out] Pitch

The width of the staging buffer, in bytes. The driver must return the pitch value because the staging buffer is lockable.

Remarks

The D3DKMDT_STAGINGSURFACEDATA structure is passed by the Microsoft DirectX graphics kernel subsystem in a call to the display miniport driver's DxgkDdiGetStandardAllocationDriverData function to generate a description of a lockable staging surface. The graphics subsystem calls the display miniport driver's DxgkDdiPresent function to issue bit-block transfer (bitblt) requests to transfer data from an application's back buffer into the staging surface. The staging surface is then locked and read by the CPU.

A staging surface is potentially created for the present operation when a direct bit-block transfer to the primary surface is not possible (for example, in multiple-monitor or sprites cases).

This staging surface is always created as an 8-bits-per-color RGB pixel format (which is specified by the D3DDDIFMT_X8R8G8B8 value from the D3DDDIFORMAT enumeration). Because the dimensions of the staging surface always match the dimensions of the back buffer, no stretch or shrink operation is required for the present operation to the staging surface.

Requirements

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

See also

D3DDDIFORMAT

D3DKMDT_STANDARDALLOCATION_TYPE

DXGKARG_CREATEALLOCATION

DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA

DxgkDdiCreateAllocation

DxgkDdiGetStandardAllocationDriverData

DxgkDdiPresent

Present