共用方式為


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)

另請參閱

D3DKMTOpenSyncObjectFromNtHandle2