共用方式為


D3D10DDIARG_CREATEDEVICE結構 (d3d10umddi.h)

D3D10DDIARG_CREATEDEVICE 結構描述要建立的顯示裝置。

語法

typedef struct D3D10DDIARG_CREATEDEVICE {
  D3D10DDI_HRTDEVICE            hRTDevice;
  UINT                          Interface;
  UINT                          Version;
  const D3DDDI_DEVICECALLBACKS  *pKTCallbacks;
  union {
    D3D10DDI_DEVICEFUNCS      *pDeviceFuncs;
    D3D10_1DDI_DEVICEFUNCS    *p10_1DeviceFuncs;
    D3D11DDI_DEVICEFUNCS      *p11DeviceFuncs;
    D3D11_1DDI_DEVICEFUNCS    *p11_1DeviceFuncs;
    D3DWDDM1_3DDI_DEVICEFUNCS *pWDDM1_3DeviceFuncs;
    D3DWDDM2_0DDI_DEVICEFUNCS *pWDDM2_0DeviceFuncs;
    D3DWDDM2_1DDI_DEVICEFUNCS *pWDDM2_1DeviceFuncs;
    D3DWDDM2_2DDI_DEVICEFUNCS *pWDDM2_2DeviceFuncs;
    D3DWDDM2_6DDI_DEVICEFUNCS *pWDDM2_6DeviceFuncs;
  };
  D3D10DDI_HDEVICE              hDrvDevice;
  DXGI_DDI_BASE_ARGS            DXGIBaseDDI;
  D3D10DDI_HRTCORELAYER         hRTCoreLayer;
  union {
    const D3D10DDI_CORELAYER_DEVICECALLBACKS      *pUMCallbacks;
    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;
  };
  UINT                          Flags;
  PFND3D10DDI_RETRIEVESUBOBJECT *ppfnRetrieveSubObject;
} D3D10DDIARG_CREATEDEVICE;

成員

hRTDevice

[in]顯示裝置的句柄(圖形內容),指定驅動程式回呼 Direct3D 運行時間時應該使用的句柄(也就是當驅動程式呼叫 pKTCallbacks 成員所指定的函式時)。

Interface

[in]Direct3D 介面版本。 高 16 位會儲存主要版本號碼(例如 10、11 等等):低16位會儲存次要版本號碼(例如0、1、2等等)。 發行介面的變更時,將會增加次要版本號碼。

Version

[in]驅動程式可用來識別 Direct3D 運行時間何時建置的數位。 高16位代表組建編號;低16位代表修訂編號。

驅動程式只需要監視高 16 位。 驅動程式應該確保傳入的運行時間組建版本大於或等於驅動程式的目前組建版本。 如果傳入的組建版本不相容,驅動程式應該從其 CreateDevice(D3D10) 傳回失敗 函式。

pKTCallbacks

[in]D3DDDI_DEVICECALLBACKS 結構的指標,其中包含驅動程式可用來存取核心服務的 Direct3D 執行時間回呼函式數據表。

pDeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3D10DDI_DEVICEFUNCS 結構的指標。 Direct3D 執行時間會使用這些函式與使用者模式顯示驅動程序通訊。

Interface 成員中的值 D3D10_0_DDI_INTERFACE_VERSION時,驅動程式應該在提供的 D3D10DDI_DEVICEFUNCS 結構中填入其 Direct3D 10.0 版函式。

p10_1DeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3D10_1DDI_DEVICEFUNCS 結構的指標。 Direct3D 執行時間 10.1 版會使用這些函式與使用者模式顯示驅動程序通訊。

Interface 成員中的值 D3D10_1_DDI_INTERFACE_VERSION時,驅動程式應該在提供的 D3D10_1DDI_DEVICEFUNCS 結構中填入其 Direct3D 10.1 版函式。

從 Sp1 和 Windows Server 2008 開始支援 Windows Vista。

p11DeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3D11DDI_DEVICEFUNCS 結構的指標。 Direct3D 執行時間第 11 版會使用這些函式與使用者模式顯示驅動程序通訊。

Interface 成員中的值 D3D11_0_DDI_INTERFACE_VERSION時,驅動程式應該在提供的 D3D11DDI_DEVICEFUNCS 結構中填入其 Direct3D 11.0 版函式。

從 Windows 7 開始支援。

p11_1DeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3D11_1DDI_DEVICEFUNCS 結構的指標。 從 11.1 版開始,Direct3D 執行時間會使用這些函式與使用者模式顯示驅動程序通訊。

介面 成員中的值 D3D11_1_DDI_INTERFACE_VERSION時,驅動程式應該在提供的 D3D11_1DDI_DEVICEFUNCS 結構中填入其 Direct3D 11.1 版函式。

從 Windows 8 開始支援。

pWDDM1_3DeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3DWDDM1_3DDI_DEVICEFUNCS 結構的指標。 Direct3D 執行時間 11.2 版會使用這些函式與使用者模式顯示驅動程序通訊。

介面 成員中的值 D3DWDDM1_3_DDI_INTERFACE_VERSION時,驅動程式應該在提供的 D3DWDDM1_3DDI_DEVICEFUNCS 結構中填入其 Direct3D 11.2 版函式。

從 Windows 8.1 開始支援。

pWDDM2_0DeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3DWDDM2_0DDI_DEVICEFUNCS 結構的指標。 當 介面 成員中的值 D3DWDDM2_0_DDI_INTERFACE_VERSION時,驅動程式應該會在提供的 結構中填入其 Direct3D 函式。

pWDDM2_1DeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3DWDDM2_1DDI_DEVICEFUNCS 結構的指標。 當 介面 成員中的值 D3DWDDM2_0_DDI_INTERFACE_VERSION時,驅動程式應該會在提供的 結構中填入其 Direct3D 函式。

pWDDM2_2DeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3DWDDM2_2DDI_DEVICEFUNCS 結構的指標。 當 介面 成員中的值 D3DWDDM2_0_DDI_INTERFACE_VERSION時,驅動程式應該會在提供的 結構中填入其 Direct3D 函式。

pWDDM2_6DeviceFuncs

[in/out]使用者模式顯示驅動程式填滿其函式數據表之 D3DWDDM2_6DDI_DEVICEFUNCS 結構的指標。 當 介面 成員中的值 D3DWDDM2_0_DDI_INTERFACE_VERSION時,驅動程式應該會在提供的 結構中填入其 Direct3D 函式。

從 Windows 10 版本 1901 開始支援。

hDrvDevice

[in/out]Direct3D 執行時間在後續驅動程式呼叫中用來識別顯示裝置的顯示裝置句柄(圖形內容)。

DXGIBaseDDI

[in/out]提供 DXGI 存取權的 DXGI_DDI_BASE_ARGS 結構。 DXGI DDI 會處理低階工作,例如將轉譯的畫面呈現至輸出、控制伽瑪,以及管理全螢幕轉換。

hRTCoreLayer

[in]驅動程式回呼至 Direct3D 執行時間以存取核心 Direct3D 10 功能的句柄(也就是當驅動程式呼叫 pUMCallbacks 成員指定的函式時)。

pUMCallbacks

[in]D3D10DDI_CORELAYER_DEVICECALLBACKS 結構的指標,其中包含驅動程式可用來存取核心使用者模式運行時間功能的 Direct3D 10 執行時間回呼函式數據表。

p11UMCallbacks

[in]D3D11DDI_CORELAYER_DEVICECALLBACKS 結構的指標,其中包含 Direct3D 10 和 Direct3D 11 運行時間回呼函式的數據表,驅動程式可用來存取核心使用者模式運行時間功能。

從 Windows 7 開始支援。

pWDDM2_0UMCallbacks

[in]D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS 結構的指標,其中包含 Direct3D 10、Direct3D 11 和 WDDM 2.0 運行時間回呼函式的數據表,驅動程式可用來存取核心使用者模式運行時間功能。

pWDDM2_2UMCallbacks

[in]D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS 結構的指標,其中包含 Direct3D 10、Direct3D 11、WDDM 2.0 和 WDDM 2.2 運行時間回呼函式的數據表,驅動程式可用來存取核心使用者模式運行時間功能。

pWDDM2_6UMCallbacks

[in]D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS 結構的指標,其中包含 Direct3D 10、Direct3D 11、WDDM 2.0、WDDM 2.2 和 WDDM 2.6 運行時間回呼函式,驅動程式可用來存取核心使用者模式運行時間功能。

Flags

[in]識別如何建立顯示裝置的有效位 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 執行時間可讓多個應用程式線程進入驅動程式。 不過,並非所有應用程式都可以執行多個線程。 如果已設定此旗標,驅動程式不會預期有多個線程輸入並同時執行。 如果設定此旗標,驅動程式可以避免同步處理。 從 Windows 7 開始支援。
旗標 成員的0xE遮罩中設定的旗標 表示驅動程式應該支持顯示裝置的 3D 管線層級。 請參閱。 從 Windows 7 開始支援。

ppfnRetrieveSubObject

[in/out]RetrieveSubObject(D3D11_1) 函式的指標,可擷取 Direct3D 驅動程式裝置物件的子元件。

從 Windows 8 開始支援。

言論

驅動程式會檢查 InterfaceVersion 成員中的值,以判斷是否要填入 D3D10DDI_DEVICEFUNCSD3D10_1DDI_DEVICEFUNCSD3D11DDI_DEVICEFUNCSD3D11_1DDI_DEVICEFUNCS或 pDeviceFuncs D3DWDDM1_3DDI_DEVICEFUNCS結構。 p10_1DeviceFuncsp11DeviceFuncsp11_1DeviceFuncspWDDM1_3DeviceFuncs 成員會指向驅動程式函式。 D3d10umddi.h 中的下列常數是驅動程式在 InterfaceVersion中可能找到的常數範例:

#define D3D10_1_DDI_MINOR_VERSION 2
#define D3D10_1_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10_1_DDI_MINOR_VERSION)
#define D3D10_1_DDI_BUILD_VERSION 1
#define D3D10_1_DDI_SUPPORTED ((((UINT64)D3D10_1_DDI_INTERFACE_VERSION) << 32) | (((UINT64)D3D10_1_DDI_BUILD_VERSION) << 16))

不同版本的作系統、Direct3D 和 Windows Display Driver Model (WDDM) 的其他可能常數組合會列在 D3d10umddi.h 標頭中。

針對在 Flags 成員0xE遮罩中設定的旗標,驅動程式會使用下列常數和巨集,從代表 3D 管線層級支援的 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 Vista
標頭 d3d10umddi.h (包括 D3d10umddi.h)

另請參閱

CreateDevice(D3D10)

D3D10DDI_CORELAYER_DEVICECALLBACKS

D3D10DDI_DEVICEFUNCS

D3D10_1DDI_DEVICEFUNCS

D3D11DDI_3DPIPELINELEVEL

D3D11DDI_3DPIPELINESUPPORT_CAPS

D3D11DDI_CORELAYER_DEVICECALLBACKS

D3D11DDI_DEVICEFUNCS

D3D11_1DDI_DEVICEFUNCS

D3DDDI_ALLOCATIONLIST

D3DDDI_DEVICECALLBACKS

D3DDDI_PATCHLOCATIONLIST

D3DWDDM1_3DDI_DEVICEFUNCS

DXGI_DDI_BASE_ARGS

DxgkDdiCreateDevice

RetrieveSubObject(D3D11_1)