struttura D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 (d3dkmthk.h)
D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 viene usato con D3DKMTOpenSyncObjectFromNtHandle2 per aprire un oggetto recinto monitorato.
Sintassi
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;
Membri
[in] hNtHandle
Handle NT per l'oggetto di sincronizzazione da aprire.
[in] hDevice
Handle del dispositivo in cui usare questo oggetto di sincronizzazione.
[in] Flags
Specifica il comportamento dell'oggetto di sincronizzazione desiderato per questo dispositivo, ad esempio semantica di attesa e segnale e gestione TDR.
[out] hSyncObject
Handle per l'oggetto di sincronizzazione che può essere usato in questo processo.
MonitoredFence
Contiene gli indirizzi virtuali dell'oggetto di sincronizzazione che possono essere usati in questo processo.
[out] MonitoredFence.FenceValueCPUVirtualAddress
Mapping di sola lettura del valore di limite per la CPU. Si tratta di un indirizzo in modalità utente leggibile dal processo che ha creato l'oggetto recinto monitorato. Per le piattaforme a 32 bit che supportano letture atomiche a 64 bit tramite metodi come InterlockedCompareExchange64(pointer,0,0)
, il mapping verrà eseguito in lettura/scrittura anziché in sola lettura per evitare una violazione di accesso durante l'operazione interlocked. A seconda del valore di No64BitAtomics limite, questo indirizzo punta a un valore sottostante a 32 bit o a 64 bit.
[out] MonitoredFence.FenceValueGPUVirtualAddress
Mapping in lettura/scrittura del valore di recinto per la GPU. Un driver può segnalare un nuovo valore di limite inserendo un comando di scrittura GPU per questo indirizzo in un buffer dei comandi e il kernel grafico DirectX sbloccherà i camerieri per questo valore dell'oggetto di isolamento. Questo indirizzo virtuale GPU viene mappato in modo asincrono e il driver deve attendere che il dispositivo che ha aperto o creato l'oggetto di sincronizzazione del recinto monitorato raggiunga PagingFenceValue sul relativo oggetto recinto di paging prima di accedere a questo indirizzo virtuale GPU. A seconda del valore di No64BitAtomics limite, questo indirizzo punta a un valore sottostante a 32 bit o a 64 bit.
[in] MonitoredFence.EngineAffinity
Un campo di bit, in cui ogni posizione di bit (a partire da zero) definisce un indice di adattatore fisico in un collegamento alla scheda di visualizzazione collegata in cui verrà eseguito il commit dell'indirizzo virtuale GPU. Zero significa che verrà eseguito il commit dell'indirizzo virtuale GPU in tutte le schede fisiche.
Reserved[8]
Valore consolidato della struttura
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10 |
server minimo supportato | Windows Server 2016 |
intestazione |
d3dkmthk.h (include D3dkmthk.h) |