PFND3D11DDI_CREATERESOURCE回调函数 (d3d10umddi.h)

创建资源。

语法

PFND3D11DDI_CREATERESOURCE Pfnd3d11ddiCreateresource;

void Pfnd3d11ddiCreateresource(
  D3D10DDI_HDEVICE unnamedParam1,
  const D3D11DDIARG_CREATERESOURCE *unnamedParam2,
  D3D10DDI_HRESOURCE unnamedParam3,
  D3D10DDI_HRTRESOURCE unnamedParam4
)
{...}

参数

unnamedParam1

hDevice [in]

显示设备的句柄 (图形上下文) 。

unnamedParam2

pCreateResource [in]

指向 D3D11DDIARG_CREATERESOURCE 结构的指针,该结构描述用户模式显示驱动程序用于创建资源的参数。

unnamedParam3

hResource [in]

资源的驱动程序专用数据的句柄。

unnamedParam4

hRTResource [in]

驱动程序在回调 Direct3D 运行时时将使用的资源句柄。

返回值

备注

驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。

驱动程序可能内存不足。 因此,驱动程序可以在调用 pfnSetErrorCb 函数时传递E_OUTOFMEMORY或D3DDDIERR_DEVICEREMOVED。 驱动程序还可以在调用 pfnSetErrorCb 时传递DXGI_DDI_ERR_UNSUPPORTED。 有关传递DXGI_DDI_ERR_UNSUPPORTED的详细信息,请参阅 BltDXGI 参考页的“备注”部分。 Direct3D 运行时确定任何其他错误都是严重错误。 如果驱动程序传递任何错误(包括D3DDDIERR_DEVICEREMOVED),则 Direct3D 运行时将确定句柄无效;因此,运行时不会调用 DestroyResource (D3D10) 函数来销毁 hResource 参数指定的句柄。

运行时根据应用程序发送用于创建资源的参数验证所有参数。 因此,驱动程序不应收到无效的组合。

如果应用程序不要求资源的内容在演示文稿中保留,则运行时会在 pCreateResource 参数指向的 D3D11DDIARG_CREATERESOURCE 结构的 MiscFlags 成员中设置 D3D10_DDI_RESOURCE_MISC_FLAG 枚举的D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT标志。 当驱动程序的 PresentDXGIBltDXGI (在 DXGI_DDI_ARG_BLT_FLAGS 结构中设置了 Present 标志) 函数) 时,将发生演示。 当应用程序使用 DXGI_SWAP_EFFECT_DISCARD 值请求交换链时,运行时使用 D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT 标志来创建交换链回缓冲区。

创建立体声后台缓冲区

从 Windows 8 开始,如果驱动程序必须创建立体声后台缓冲区,则必须设置 pCreateResource 指向的 D3D11DDIARG_CREATERESOURCE 结构的成员,如下所示:
  1. ArraySize 成员设置为值 2。
  2. BindFlags 成员中设置D3D10_DDI_BIND_PRESENT标志值。
此外,为了支持立体呈现,BltDXGI 函数必须允许源和目标资源范围内的DXGI_DDI_ARG_BLT结构的 DstSubresourceSrcSubresource 成员的任何值。

对输入值的限制

对于 Windows 显示驱动程序模型 (WDDM) 1.3 及更高版本的驱动程序,Microsoft Direct3D 运行时提供此函数使用的一组受限输入值。 有关所有受限值的列表,请参阅 [Direct3D 呈现性能改进] (/windows-hardware/drivers/display/direct3d-rendering-performance-improvements) 。

要求

要求
最低受支持的客户端 从 Windows 7 操作系统开始支持 CreateResource (D3D11) 。
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

BltDXGI

CalcPrivateResourceSize (D3D11)

D3D10_DDI_RESOURCE_MISC_FLAG

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

DXGI_DDI_ARG_BLT

DXGI_DDI_ARG_BLT_FLAGS

DestroyResource (D3D10)

PresentDXGI

pfnSetErrorCb