IDDCX_METADATA - NtDoc

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

struct IDDCX_METADATA {
  UINT          Size;
  UINT          PresentationFrameNumber;
  UINT          DirtyRectCount;
  UINT          MoveRegionCount;
  BOOL          HwProtectedSurface;
  UINT64        PresentDisplayQPCTime;
  IDXGIResource *pSurface;
};
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-iddcx-iddcx_metadata)

IDDCX_METADATA structure

Description

IDDCX_METADATA provides information about the current provided surface and what is displayed on it.

Members

Size

Total size of the structure, in bytes.

PresentationFrameNumber

Presentation frame number of this surface.

DirtyRectCount

Number of dirty rects for this frame. Call IddCxSwapChainGetDirtyRects to get the dirty rects.

A MoveRegionCount of zero and DirtyRectCount of 1, where the single dirty rect has all values set to zero, indicates that there has not been any image updates from the previous frame. This is an opportunity for the driver to re-encode the desktop image again to increase the visual quality. Once there are no more updates, the OS presents the same frame as many times as indicated by the IDDCX_ADAPTER_CAPS value StaticDesktopReencodeFrameCount, then stops presenting until the next update.

MoveRegionCount

Starting in IddCx v1.7, the IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS flag was deprecated and move regions are no longer provided at acquire frame time, so this field will always be zero.

Number of move regions in this frame. Call IddCxSwapChainGetMoveRegions to get the move regions.

HwProtectedSurface

Indicates whether the provided surface is hardware protected.

PresentDisplayQPCTime

System QPC time of when this surface should be displayed on the indirect display monitor.

pSurface

Pointer to a IDXGIResource DX surface that contains the image to encode and transmit. The driver can use this DX surface anytime until IddCxSwapChainReleaseAndAcquire is called again.

[!NOTE] This surface is always a A8R8G8B8 formatted surface.

Remarks

A single empty dirty rect indicates there were no desktop updates.

See also

IDDCX_FRAME_STATISTICS