structure D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 (d3dkmthk.h)
D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 est utilisé avec D3DKMTOpenSyncObjectFromNtHandle2 pour ouvrir un objet de clôture supervisé.
Syntaxe
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;
Membres
[in] hNtHandle
Handle NT pour l’objet de synchronisation à ouvrir.
[in] hDevice
Handle d’appareil sur lequel utiliser cet objet de synchronisation.
[in] Flags
Spécifie le comportement souhaité de l’objet de synchronisation pour cet appareil, tel que la sémantique d’attente et de signal et la gestion TDR.
[out] hSyncObject
Gérez l’objet de synchronisation qui peut être utilisé dans ce processus.
MonitoredFence
Contient des adresses virtuelles d’objet de synchronisation qui peuvent être utilisées dans ce processus.
[out] MonitoredFence.FenceValueCPUVirtualAddress
Mappage en lecture seule de la valeur de clôture pour l’UC. Il s’agit d’une adresse en mode utilisateur lisible à partir du processus qui a créé l’objet de clôture supervisé. Pour les plateformes 32 bits qui prennent en charge les lectures atomiques 64 bits via des méthodes telles que InterlockedCompareExchange64(pointer,0,0)
, le mappage est effectué en lecture-écriture au lieu de lecture seule pour éviter une violation d’accès pendant l’opération interblocée. Selon la valeur de No64BitAtomics limite, cette adresse pointe vers une valeur sous-jacente 32 bits ou 64 bits.
[out] MonitoredFence.FenceValueGPUVirtualAddress
Mappage en lecture-écriture de la valeur de clôture pour le GPU. Un pilote peut signaler une nouvelle valeur de clôture en insérant une commande d’écriture GPU pour cette adresse dans une mémoire tampon de commande, et le noyau graphique DirectX débloquera les serveurs pour cette valeur d’objet de clôture. Cette adresse virtuelle GPU est mappée de manière asynchrone et le pilote doit attendre que l’appareil qui a ouvert ou créé l’objet de synchronisation de clôture supervisé atteigne PagingFenceValue sur son objet de délimitation de pagination avant d’accéder à cette adresse virtuelle GPU. Selon la valeur de No64BitAtomics limite, cette adresse pointe vers une valeur sous-jacente 32 bits ou 64 bits.
[in] MonitoredFence.EngineAffinity
Champ de bits, où chaque position de bit (à partir de zéro) définit un index d’adaptateur physique dans un lien d’adaptateur d’affichage lié où l’adresse virtuelle GPU sera validée. Zéro signifie que l’adresse virtuelle GPU est validée sur tous les adaptateurs physiques.
Reserved[8]
Valeur consolidée de la structure
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 10 |
serveur minimum pris en charge | Windows Server 2016 |
d’en-tête | d3dkmthk.h (include D3dkmthk.h) |