D3DKMT_CREATEALLOCATION結構 (d3dkmthk.h)
D3DKMT_CREATEALLOCATION 結構描述 建立配置的參數。
語法
typedef struct _D3DKMT_CREATEALLOCATION {
[in] D3DKMT_HANDLE hDevice;
[in/out] D3DKMT_HANDLE hResource;
[out] D3DKMT_HANDLE hGlobalShare;
[in] const VOID *pPrivateRuntimeData;
[in] UINT PrivateRuntimeDataSize;
union {
[in] D3DKMT_CREATESTANDARDALLOCATION *pStandardAllocation;
[in] const VOID *pPrivateDriverData;
};
[in/out] UINT PrivateDriverDataSize;
[in] UINT NumAllocations;
union {
[in] D3DDDI_ALLOCATIONINFO *pAllocationInfo;
[in] D3DDDI_ALLOCATIONINFO2 *pAllocationInfo2;
};
[in] D3DKMT_CREATEALLOCATIONFLAGS Flags;
[in] HANDLE hPrivateRuntimeResourceHandle;
} D3DKMT_CREATEALLOCATION;
成員
[in] hDevice
與資源或配置相關聯的裝置句柄。
[in/out] hResource
D3DKMT_HANDLE數據類型,代表與配置相關聯之資源的核心模式句柄。 除非將配置新增至現有的資源,否則 hResource 中的值應該一律為零,在此情況下,hResource 包含資源句柄。
當 CreateResource 位字段旗標在 Flags 成員中設定時,OpenGL 運行時間會產生唯一的句柄,並將它傳回驅動程式。 在 D3DKMTCreateAllocation 函式的輸出上,hResource 指定驅動程式在後續 OpenGL 運行時間呼叫中應使用的句柄來識別資源。 傳回的資源句柄是裝置特定的,而且只有在與建立裝置搭配使用時才有效。
[out] hGlobalShare
使用者模式客戶端驅動程式不應該使用全域句柄共享資源。 驅動程式應該在 Flags 中設定 NtSecuritySharing,並呼叫 D3DKMTShareObjects 以取得 NT 句柄。 使用全域句柄並不安全。 任何進程都可以猜測全域句柄並開啟共享物件。 只有舊版 D3D 運行時間的相容性原因,才支援全域句柄。 (未設定 NtSecuritySharing 時,會在 hGlobalShare中傳回全域句柄。沒有什麼可避免 UMD 使用全域句柄共用資源,但驅動程式不應該這麼做。
[in] pPrivateRuntimeData
可附加至資源的選擇性私用數據的指標,以供偵錯之用。 此數據是每個資源,而不是每個配置。
[in] PrivateRuntimeDataSize
pPrivateRuntimeData 指向的私人數據大小,以位元組為單位。
[in] pStandardAllocation
描述要建立之標準配置之 D3DKMT_CREATESTANDARDALLOCATION 結構的指標。
[in] pPrivateDriverData
緩衝區的指標,其中包含顯示迷你埠驅動程式可能需要建立資源或配置的選擇性私用數據。 緩衝區的內容通常來自 ICD,而且必須是顯示迷你埠驅動程式可以處理的格式。
[in/out] PrivateDriverDataSize
pPrivateDriverData 指向的私人數據大小,以位元組為單位。
[in] NumAllocations
陣列中 pAllocationInfo 所指定的元素數目,代表要建立的配置數目。 請注意,建立資源時,一開始沒有任何與其相關聯的配置是有效的;因此,NumAllocations 可以設定為 0。
[in] pAllocationInfo
D3DDDI_ALLOCATIONINFO 結構的陣列,描述要建立之每個配置的特定屬性。
[in] pAllocationInfo2
這個成員是保留的,而且應該設定為零。
此成員從 Windows 7 開始提供。
[in] Flags
D3DKMT_CREATEALLOCATIONFLAGS 結構,識別用於在位字段旗標中建立配置的屬性。
如果您在 Flags中設定 CreateShared 位字段旗標,您也必須設定 CreateResource 位字段旗標。
[in] hPrivateRuntimeResourceHandle
您可以在事件追蹤中使用的不透明句柄。 當您分析 Windows 事件追蹤 (ETW) 事件記錄檔時,此句柄可用來將內核模式配置與使用者模式介面指標產生關聯。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmthk.h (包括 D3dkmthk.h) |