D3D11DDIARG_CREATEDEFERREDCONTEXT 结构 (d3d10umddi.h)

D3D11DDIARG_CREATEDEFERREDCONTEXT 结构描述要创建的延迟上下文。

语法

typedef struct D3D11DDIARG_CREATEDEFERREDCONTEXT {
  union {
#if ...
    [in/out] D3D11DDI_DEVICEFUNCS             *p11ContextFuncs;
#else
    [in/out] struct D3D11DDI_DEVICEFUNCS      *p11ContextFuncs;
#endif
#if ...
    [in/out] D3D11_1DDI_DEVICEFUNCS           *p11_1ContextFuncs;
#else
    [in/out] struct D3D11_1DDI_DEVICEFUNCS    *p11_1ContextFuncs;
#endif
#if ...
    [in/out] D3DWDDM1_3DDI_DEVICEFUNCS        *pWDDM1_3ContextFuncs;
#else
    [in/out] struct D3DWDDM1_3DDI_DEVICEFUNCS *pWDDM1_3ContextFuncs;
#endif
#if ...
    [in/out] D3DWDDM2_0DDI_DEVICEFUNCS        *pWDDM2_0ContextFuncs;
#else
    [in/out] struct D3DWDDM2_0DDI_DEVICEFUNCS *pWDDM2_0ContextFuncs;
#endif
#if ...
             D3DWDDM2_1DDI_DEVICEFUNCS        *pWDDM2_1ContextFuncs;
#else
             struct D3DWDDM2_1DDI_DEVICEFUNCS *pWDDM2_1ContextFuncs;
#endif
#if ...
             D3DWDDM2_2DDI_DEVICEFUNCS        *pWDDM2_2ContextFuncs;
#else
             struct D3DWDDM2_2DDI_DEVICEFUNCS *pWDDM2_2ContextFuncs;
#endif
#if ...
             D3DWDDM2_6DDI_DEVICEFUNCS        *pWDDM2_6ContextFuncs;
#else
             struct D3DWDDM2_6DDI_DEVICEFUNCS *pWDDM2_6ContextFuncs;
#endif
  };
  [in]     D3D10DDI_HDEVICE      hDrvContext;
  [in]     D3D10DDI_HRTCORELAYER hRTCoreLayer;
  union {
    [in]     const D3D11DDI_CORELAYER_DEVICECALLBACKS      *p11UMCallbacks;
             const D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_0UMCallbacks;
             const D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_2UMCallbacks;
             const D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_6UMCallbacks;
  };
  [in]     UINT                  Flags;
} D3D11DDIARG_CREATEDEFERREDCONTEXT;

成员

[in/out] p11ContextFuncs

指向 D3D11DDI_DEVICEFUNCS 结构的指针,用户模式显示驱动程序使用延迟上下文的函数表填充该结构。 Direct3D 运行时使用这些函数与用户模式显示驱动程序通信。

有关不用于延迟上下文的函数的列表,请参阅 排除延迟上下文的 DDI 函数

[in/out] p11_1ContextFuncs

指向 D3D11_1DDI_DEVICEFUNCS 结构的指针,用户模式显示驱动程序用其针对延迟上下文的函数表填充该结构。 Direct3D 运行时使用这些函数与用户模式显示驱动程序通信。

支持从Windows 8开始。

[in/out] pWDDM1_3ContextFuncs

指向 D3DWDDM1_3DDI_DEVICEFUNCS 结构的指针,用户模式显示驱动程序使用其延迟上下文的函数表填充该结构。 Direct3D 运行时使用这些函数与用户模式显示驱动程序通信。

支持从Windows 8.1开始。

[in/out] pWDDM2_0ContextFuncs

指向 D3DWDDM2_0DDI_DEVICEFUNCS 结构的指针,该结构由用户模式显示驱动程序填充 WDDM 2.0 的设备功能表。 Direct3D 运行时使用这些函数与用户模式显示驱动程序通信。

pWDDM2_1ContextFuncs

指向 D3DWDDM2_1DDI_DEVICEFUNCS 结构的指针,用户模式显示驱动程序为 WDDM 2.1 填充其设备函数表。 Direct3D 运行时使用这些函数与用户模式显示驱动程序通信。

pWDDM2_2ContextFuncs

指向 D3DWDDM2_2DDI_DEVICEFUNCS 结构的指针,用户模式显示驱动程序将填充 WDDM 2.2 的设备功能表。 Direct3D 运行时使用这些函数与用户模式显示驱动程序通信。

pWDDM2_6ContextFuncs

指向用户模式显示驱动程序填充其 WDDM 2.6 设备功能表的 D3DWDDM2_6DDI_DEVICEFUNCS 结构的指针。 Direct3D 运行时使用这些函数与用户模式显示驱动程序通信。

[in] hDrvContext

驱动程序专用句柄存储的驱动程序上下文的句柄。

[in] hRTCoreLayer

驱动程序在调用回 Direct3D 运行时以访问核心 Direct3D 11 功能时应使用的句柄 (即,当驱动程序调用 p11UMCallbacks 成员指定的) 的函数时。

[in] p11UMCallbacks

指向 D3D11DDI_CORELAYER_DEVICECALLBACKS 结构的指针,该结构包含驱动程序可用于访问核心用户模式运行时功能的 Direct3D 11 运行时回调函数的 WDDM 2.0 之前函数表。

pWDDM2_0UMCallbacks

指向 D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS 结构的指针,该结构包含驱动程序可用于访问核心用户模式运行时功能的 Direct3D 11 核心层设备回调函数的 WDDM 2.0 函数表。

pWDDM2_2UMCallbacks

指向 D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS 结构的指针,该结构包含 Direct3D 11 核心层设备回调函数的 WDDM 2.2 函数表,驱动程序可以使用这些函数来访问核心用户模式运行时功能。

pWDDM2_6UMCallbacks

指向 D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS 结构的指针,该结构包含驱动程序可用于访问核心用户模式运行时功能的 Direct3D 11 核心层设备回调函数的 WDDM 2.6 函数表。

[in] Flags

D3D10DDI_CREATEDEVICE_FLAG_XXX 标志值的有效按位 OR,用于标识如何创建呈现设备。 Direct3D 运行时支持以下标志:

标志 含义
D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION (0x1) 设置后,用户模式显示驱动程序在处理从 Direct3D 运行时对其函数的调用时,不应同时运行多个线程。 驱动程序通常可以启动和运行多个线程以更快地处理操作,除非设置了D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION。
D3D11DDI_CREATEDEVICE_FLAG_SINGLETHREADED (0x10) 此标志通知用户模式显示驱动程序应用程序是单线程的。 如果驱动程序允许此操作模式,Direct3D 版本 11 运行时允许多个应用程序线程进入驱动程序。 但是,并非所有应用程序都可以运行多个线程。 如果设置了此标志,驱动程序不会期望多个线程进入它并同时运行。 如果存在此标志,驱动程序可以避免同步。
在 Flags 成员的0xE掩码中设置的标志 此标志表示驱动程序应为显示设备支持的三维管道级别。 驱动程序使用以下常量和宏从表示要支持的三维管道级别的 D3D11DDI_3DPIPELINELEVEL 枚举中提取值之一。

Flags 成员中的值的格式类似于 D3D11DDI_3DPIPELINESUPPORT_CAPS 结构的 Caps 成员。

#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT (0x1)
#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK (0x7 << D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT)
#define D3D11DDI_EXTRACT_3DPIPELINELEVEL_FROM_FLAGS( Flags ) \
    ((D3D11DDI_3DPIPELINELEVEL)(((Flags) & D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK) >> \
    D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT))

要求

要求
最低受支持的客户端 Windows 7
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

D3D11DDI_3DPIPELINELEVEL

D3D11DDI_3DPIPELINESUPPORT_CAPS

D3D11DDI_CORELAYER_DEVICECALLBACKS

D3D11DDI_DEVICEFUNCS

D3D11_1DDI_DEVICEFUNCS