structure D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 (d3dkmthk.h)
D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 est utilisé avec D3DKMTOpenSyncObjectFromNtHandle2 pour ouvrir un objet de clôture surveillé.
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, comme la sémantique de l’attente et du signal et la gestion du 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 le processeur. Il s’agit d’une adresse de mode utilisateur lisible à partir du processus qui a créé l’objet de clôture surveillé. 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 sera effectué en lecture-écriture plutôt qu’en lecture seule pour éviter une violation d’accès pendant l’opération verrouillée. Selon la valeur de la limite No64BitAtomics , cette adresse pointe vers une valeur sous-jacente de 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ée atteigne PagingFenceValue sur son objet de clôture de pagination avant d’accéder à cette adresse virtuelle GPU. Selon la valeur de la limite No64BitAtomics , cette adresse pointe vers une valeur sous-jacente de 32 bits ou 64 bits.
[in] MonitoredFence.EngineAffinity
Champ bit, où chaque position de bit (à partir de zéro) définit un index d’adaptateur physique dans un lien de carte d’affichage lié où l’adresse virtuelle GPU sera validée. Zéro signifie que l’adresse virtuelle GPU sera validée sur toutes les cartes physiques.
Reserved[8]
Valeur consolidée de la structure MonitorFence .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 |
Serveur minimal pris en charge | Windows Server 2016 |
En-tête | d3dkmthk.h (inclure D3dkmthk.h) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour