The ResourceUpdateSubresourceUP function updates a destination subresource region from a source system-memory region.



VOID APIENTRY ResourceUpdateSubresourceUP(
  _In_           D3D10DDI_HDEVICE   hDevice,
  _In_           D3D10DDI_HRESOURCE hDstResource,
  _In_           UINT               DstSubresource,
  _In_opt_ const D3D10_DDI_BOX      *pDstBox,
  _In_     const VOID               *pSysMemUP,
  _In_           UINT               RowPitch,
  _In_           UINT               DepthPitch
{ ... }


hDevice [in]

A handle to the display device (graphics context).

hDstResource [in]

A handle to the destination resource to copy to.

DstSubresource [in]

An index that indicates the destination subresource to copy to.

pDstBox [in, optional]

A pointer to a D3D10_DDI_BOX structure that specifies the region of the destination subresource to copy data to. If pDstBox is NULL, the driver should copy to the entire destination subresouce.

If the members of the D3D10_DDI_BOX structure are such that left>=right, top>=bottom, or front>=back, then pDstBox is considered empty, and ResourceUpdateSubresourceUP must not perform any update operation.

pSysMemUP [in]

A pointer to the beginning address of the source data that ResourceUpdateSubresourceUP uses to update the destination subresouce.

RowPitch [in]

The offset, in bytes, to move to the next row of source data.

DepthPitch [in]

The offset, in bytes, to move to the next depth slice of source data.

Return value


The driver can use the pfnSetErrorCb callback function to set an error code. For more information about setting error codes, see the Remarks section.


The Microsoft Direct3D runtime calls the user-mode display driver's ResourceUpdateSubresourceUP function to copy from a source system-memory region to a destination subresource region. The source data must be in the format type (DXGI_FORMAT-typed value) of the destination subresource. The box that the pDstBox parameter points to must not extend over the edges of the destination subresource.

In addition, the resource creation flags restrict whether the resource can participate in the update operation. The runtime will typically not call ResourceUpdateSubresourceUP if the runtime can call ResourceMap to populate the destination subresource and might not call either ResourceUpdateSubresourceUP or ResourceMap to update the destination subresource if, for example, the resource is immutable.

The driver should not encounter any error, except for D3DDDIERR_DEVICEREMOVED. Therefore, if the driver passes any error, except for D3DDDIERR_DEVICEREMOVED, in a call to the pfnSetErrorCb function, the Direct3D runtime will determine that the error is critical. Even if the device was removed, the driver is not required to return D3DDDIERR_DEVICEREMOVED; however, if device removal interfered with the operation of ResourceUpdateSubresourceUP (which typically should not happen), the driver can return D3DDDIERR_DEVICEREMOVED.


Target platform


Available in Windows Vista and later versions of the Windows operating systems.


D3d10umddi.h (include D3d10umddi.h)

See also




Send comments about this topic to Microsoft