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 執行時間會使用這些函式來與使用者模式顯示驅動程序通訊。
當介面成員中的值D3D10_0_DDI_INTERFACE_VERSION時,驅動程序應該在提供的 D3D10DDI_DEVICEFUNCS 結構中填入其 Direct3D 10.0 版函式。
p10_1DeviceFuncs
[in/out]使用者模式顯示驅動程式在其函式數據表中填滿 的D3D10_1DDI_DEVICEFUNCS 結構的指標。 Direct3D 執行時間 10.1 版會使用這些函式來與使用者模式顯示驅動程序通訊。
當介面成員中的值D3D10_1_DDI_INTERFACE_VERSION時,驅動程式應該在提供的 D3D10_1DDI_DEVICEFUNCS 結構中填入其 Direct3D 10.1 版函式。
從SP1和 Windows Server 2008 開始支援 Windows Vista。
p11DeviceFuncs
[in/out]使用者模式顯示驅動程式在其函式數據表中填滿的 D3D11DDI_DEVICEFUNCS 結構的指標。 Direct3D 執行時間第 11 版會使用這些函式來與使用者模式顯示驅動程序通訊。
當介面成員中的值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 會處理低階工作,例如將轉譯的畫面呈現至輸出、控制 gamma,以及管理全螢幕轉換。
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]包含 Direct3D 10、Direct3D 11、WDDM 2.0、WDDM 2.2 和 WDDM 2.6 運行時間回呼函式的 D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS 結構指標,驅動程式可用來存取核心使用者模式運行時間功能。
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 開始支援。 |
在 Flags 成員的0xE遮罩中設定的旗標 | 表示驅動程式應該支持顯示裝置的 3D 管線層級。 請參閱<備註>。 從 Windows 7 開始支援。 |
ppfnRetrieveSubObject
[in/out]擷取 Direct3D 驅動程式裝置物件的子元件之 RetrieveSubObject 的指標 (D3D11_1) 函式。
從 Windows 8 開始支援。
備註
驅動程式會檢查 介面 和 版本 成員中的值,以判斷是否要填入 D3D10DDI_DEVICEFUNCS、 D3D10_1DDI_DEVICEFUNCS、 D3D11DDI_DEVICEFUNCS、 D3D11_1DDI_DEVICEFUNCS或 D3DWDDM1_3DDI_DEVICEFUNCS 結構, pDeviceFuncs、 p10_1DeviceFuncs、 p11DeviceFuncs、 p11_1DeviceFuncs或 pWDDM1_3DeviceFuncs 成員指向驅動程式的功能。 D3d10umddi.h 的下列常數是驅動程序在 介面 和 版本中找到的常數範例:
#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 (include D3d10umddi.h) |
另請參閱
D3D10DDI_CORELAYER_DEVICECALLBACKS
D3D11DDI_3DPIPELINESUPPORT_CAPS