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 cap
[out] MonitoredFence.FenceValueGPUVirtualAddress
GPU のフェンス値の読み取り/書き込みマッピング。 ドライバーは、このアドレスの GPU 書き込みコマンドをコマンド バッファーに挿入することで、新しいフェンス値を通知できます。DirectX グラフィックス カーネルは、このフェンス オブジェクト値の待機者のブロックを解除します。 この GPU 仮想アドレスは非同期的にマップされます。ドライバーは、監視対象のフェンス同期オブジェクトを開いたデバイスまたは作成したデバイスが、この GPU 仮想アドレスにアクセスする前に、ページング フェンス オブジェクトの PagingFenceValue
[in] MonitoredFence.EngineAffinity
ビット フィールド。各ビット位置 (ゼロから始まる) は、GPU 仮想アドレスがコミットされるリンクされたディスプレイ アダプター リンク内の物理アダプター インデックスを定義します。 ゼロは、GPU 仮想アドレスがすべての物理アダプターにコミットされることを意味します。
Reserved[8]
MonitoredFence 構造体の統合値。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 10 |
サポートされる最小サーバー | Windows Server 2016 |
ヘッダー | d3dkmthk.h (D3dkmthk.h を含む) |