D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 Struktur (d3dkmthk.h)
D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 wird mit D3DKMTOpenSyncObjectFromNtHandle2 verwendet, um ein überwachtes Zaunobjekt zu öffnen.
Syntax
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;
Angehörige
[in] hNtHandle
NT-Handle für das zu öffnende Synchronisierungsobjekt.
[in] hDevice
Gerätehandle zum Verwenden dieses Synchronisierungsobjekts aktiviert.
[in] Flags
Gibt das gewünschte Synchronisierungsobjektverhalten für dieses Gerät an, z. B. Warte- und Signalsemantik und TDR-Verarbeitung.
[out] hSyncObject
Behandeln Sie das Synchronisierungsobjekt, das in diesem Prozess verwendet werden kann.
MonitoredFence
Enthält virtuelle Synchronisierungsobjektadressen, die in diesem Prozess verwendet werden können.
[out] MonitoredFence.FenceValueCPUVirtualAddress
Eine schreibgeschützte Zuordnung des Zaunwerts für die CPU. Dies ist eine Benutzermodusadresse, die vom Prozess gelesen werden kann, der das überwachte Zaunobjekt erstellt hat. Bei 32-Bit-Plattformen, die 64-Bit-Atomlesevorgänge über Methoden wie InterlockedCompareExchange64(pointer,0,0)
unterstützen, wird die Zuordnung schreibgeschützt erstellt, um während des verriegelten Vorgangs eine Zugriffsverletzung zu vermeiden. Je nach Wert von No64BitAtomics Cap verweist diese Adresse entweder auf einen 32-Bit- oder einen 64-Bit-zugrunde liegenden Wert.
[out] MonitoredFence.FenceValueGPUVirtualAddress
Eine Lese-/Schreibzuordnung des Zaunwerts für die GPU. Ein Treiber kann einen neuen Zaunwert signalisieren, indem er einen GPU-Schreibbefehl für diese Adresse in einen Befehlspuffer einfügt, und der DirectX-Grafikkern entsperrt Die Blockierung für diesen Zaunobjektwert. Diese virtuelle GPU-Adresse wird asynchron zugeordnet, und der Treiber sollte auf das Gerät warten, das das überwachte Zaunsynchronisierungsobjekt geöffnet oder erstellt hat, um PagingFenceValue auf seinem Paging-Zaunobjekt zu erreichen, bevor auf diese virtuelle GPU-Adresse zugegriffen wird. Je nach Wert von No64BitAtomics Cap verweist diese Adresse entweder auf einen 32-Bit- oder einen 64-Bit-zugrunde liegenden Wert.
[in] MonitoredFence.EngineAffinity
Ein Bitfeld, bei dem jede Bitposition (beginnend mit Null) einen physischen Adapterindex in einer verknüpften Grafikkartenverknüpfung definiert, bei der die virtuelle GPU-Adresse zugesichert wird. Null bedeutet, dass die virtuelle GPU-Adresse allen physischen Adaptern zugesichert wird.
Reserved[8]
Der konsolidierte Wert der MonitoredFence Struktur.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10 |
mindestens unterstützte Server- | Windows Server 2016 |
Header- | d3dkmthk.h (einschließlich D3dkmthk.h) |