D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2結構(d3dkmthk.h)
D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 會與 D3DKMTOpenSyncObjectFromNtHandle2 搭配使用,以開啟受監視的柵欄物件。
語法
typedef struct _D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 {
[in] HANDLE hNtHandle;
[in] D3DKMT_HANDLE hDevice;
[in] D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags;
[out] D3DKMT_HANDLE hSyncObject;
union {
struct {
VOID *FenceValueCPUVirtualAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
UINT EngineAffinity;
} MonitoredFence;
D3DKMT_ALIGN64 UINT64 Reserved[8];
};
} D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2;
成員
[in] hNtHandle
要開啟同步物件的 NT 句柄。
[in] hDevice
用來使用此同步對象的裝置句柄。
[in] Flags
指定此裝置所需的同步對象行為,例如等候和訊號語意和 TDR 處理。
[out] hSyncObject
處理可用於此程式的同步物件。
MonitoredFence
包含可用於此程式的同步物件虛擬位址。
[out] MonitoredFence.FenceValueCPUVirtualAddress
CPU 柵欄值的唯讀對應。 這是使用者模式位址,可從建立受監視的柵欄物件的程式讀取。 對於支援透過 InterlockedCompareExchange64(pointer,0,0)
等方法進行 64 位不可部分完成讀取的 32 位平臺,將會進行讀寫,而不是只讀,以避免在聯結作業期間發生存取違規。 根據 No64BitAtomics 上限的值,此位址會指向 32 位或 64 位基礎值。
[out] MonitoredFence.FenceValueGPUVirtualAddress
GPU 範圍值的讀寫對應。 驅動程式可以將這個位址的 GPU 寫入命令插入命令緩衝區,以發出新的柵欄值訊號,而 DirectX 圖形核心會解除封鎖此柵欄物件值的等候程式。 此 GPU 虛擬位址會以異步方式對應,而驅動程式應該等候開啟或建立受監視的柵欄同步處理物件,以在存取此 GPU 虛擬位址之前,在其分頁柵欄對象上連線到 PagingFenceValue。 根據 No64BitAtomics 上限的值,此位址會指向 32 位或 64 位基礎值。
[in] MonitoredFence.EngineAffinity
位欄位,其中每個位位置(從零開始)都會在連結的顯示適配卡連結中定義實體適配卡索引,其中會認可 GPU 虛擬位址。 零表示 GPU 虛擬位址會認可到所有實體適配卡。
Reserved[8]
MonitoredFence 結構的合併值。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 |
支援的最低伺服器 | Windows Server 2016 |
標頭 | d3dkmthk.h (包括 D3dkmthk.h) |