D3DDDICB_PRESENT structure (d3dumddi.h)

The D3DDDICB_PRESENT structure describes allocations that content is copied to and from.

Syntax

typedef struct _D3DDDICB_PRESENT {
  [in] D3DKMT_HANDLE            hSrcAllocation;
  [in] D3DKMT_HANDLE            hDstAllocation;
  [in] HANDLE                   hContext;
  [in] UINT                     BroadcastContextCount;
       HANDLE                   BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
       D3DKMT_HANDLE            *BroadcastSrcAllocation;
       D3DKMT_HANDLE            *BroadcastDstAllocation;
       UINT                     PrivateDriverDataSize;
       PVOID                    pPrivateDriverData;
       BOOLEAN                  bOptimizeForComposition;
       BOOL                     SyncIntervalOverrideValid;
       D3DDDI_FLIPINTERVAL_TYPE SyncIntervalOverride;
} D3DDDICB_PRESENT;

Members

[in] hSrcAllocation

A D3DKMT_HANDLE data type that represents a kernel-mode handle to the source allocation. The Microsoft Direct3D runtime's pfnAllocateCb function returns this handle. Therefore, the user-mode display driver should use this handle to copy content from.

[in] hDstAllocation

A D3DKMT_HANDLE data type that represents a kernel-mode handle to the destination allocation. hDstAllocation can be zero if the destination is unknown; kernel mode will determine the destination just before DMA of the hardware command stream to the graphics processor.

[in] hContext

A handle to the context that the driver submits the copy operation to. The user-mode display driver previously created this context by calling the pfnCreateContextCb function.

[in] BroadcastContextCount

The number of additional contexts in the array that the BroadcastContext member specifies.

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

An array of handles to the additional contexts to broadcast the current present operation to. The D3DDDI_MAX_BROADCAST_CONTEXT constant, which is defined as 64, defines the maximum number of additional contexts that the user-mode display driver can broadcast the current present operation to.

Broadcasting is supported only for flip operations. To broadcast a flip operation, the display miniport driver must support memory mapped I/O (MMIO)-based flips. To indicate support of MMIO flips, the display miniport driver sets the FlipOnVSyncMmIo bit-field flag in the FlipCaps member of the DXGK_DRIVERCAPS structure when its DxgkDdiQueryAdapterInfo function is called.

The original context that the hContext member specifies and that the user-mode display driver presents to is not an element in the BroadcastContext array. For example, if the BroadcastContext array contains one element, the user-mode display driver sends the present operation to the owning context (hContext) and broadcasts to that one additional context.

BroadcastSrcAllocation

Allocations which content will be presented.

BroadcastDstAllocation

If non-zero, represents the destination allocations of the present.

PrivateDriverDataSize

Private driver data size in bytes.

pPrivateDriverData

Private driver data to pass to DdiPresent.

bOptimizeForComposition

DWM is involved in composition.

SyncIntervalOverrideValid

Override app sync interval is valid.

SyncIntervalOverride

Override app sync interval.

Requirements

Requirement Value
Minimum supported client Available in Windows Vista and later versions of the Windows operating systems.
Header d3dumddi.h (include D3dumddi.h)

See also

pfnAllocateCb

pfnPresentCb