struttura D3DDDI_SYNCHRONIZATIONOBJECTINFO2 (d3dukmdt.h)
La struttura D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene informazioni su un oggetto di sincronizzazione di seconda generazione.
Sintassi
typedef struct _D3DDDI_SYNCHRONIZATIONOBJECTINFO2 {
D3DDDI_SYNCHRONIZATIONOBJECT_TYPE Type;
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags;
union {
struct {
BOOL InitialState;
} SynchronizationMutex;
struct {
UINT MaxCount;
UINT InitialCount;
} Semaphore;
struct {
D3DKMT_ALIGN64 UINT64 FenceValue;
} Fence;
struct {
HANDLE Event;
} CPUNotification;
struct {
D3DKMT_ALIGN64 UINT64 InitialFenceValue;
VOID *FenceValueCPUVirtualAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
UINT EngineAffinity;
UINT Padding;
} MonitoredFence;
struct {
D3DKMT_HANDLE hAdapter;
D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId;
D3DKMT_ALIGN64 UINT64 Time;
VOID *FenceValueCPUVirtualAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
UINT EngineAffinity;
UINT Padding;
} PeriodicMonitoredFence;
struct {
D3DKMT_ALIGN64 UINT64 Reserved[8];
} Reserved;
};
D3DKMT_HANDLE SharedHandle;
} D3DDDI_SYNCHRONIZATIONOBJECTINFO2;
Membri
Type
[in] Valore di tipo D3DDDI_SYNCHRONIZATIONOBJECT_TYPE che indica il tipo di oggetto di sincronizzazione.
Flags
[in] Struttura D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS che specifica, in flag di campo di bit, attributi dell'oggetto di sincronizzazione.
SynchronizationMutex
Struttura che contiene informazioni su un mutex di sincronizzazione. Se il membro type
SynchronizationMutex.InitialState
Valore booleano che indica se il mutex di sincronizzazione è inizialmente di proprietà di un oggetto . Un valore TRUE indica che il mutex è di proprietà; FALSE indica che il mutex non è di proprietà.
Semaphore
Struttura che contiene informazioni su un semaforo. Se il membro type
Semaphore.MaxCount
Numero massimo di eventi che un oggetto può attendere.
Semaphore.InitialCount
Numero iniziale di eventi in attesa di un oggetto.
Fence
Struttura che contiene informazioni su un recinto. Se il membro Type
Fence.FenceValue
Valore a 64 bit che specifica il valore di limite iniziale.
CPUNotification
Struttura che contiene informazioni su una notifica della CPU. Se il membro Type
CPUNotification.Event
Handle per l'evento di notifica della CPU.
MonitoredFence
Struttura che contiene informazioni su un recinto monitorato. Se il membro Type
I recinti monitorati possono essere condivisi solo usando handle NT per motivi di sicurezza, pertanto il flag NtSecuritySharing
Supportato a partire da Windows 10.
MonitoredFence.InitialFenceValue
[in] Valore a 64 bit che specifica il valore di limite iniziale.
Supportato a partire da Windows 10.
MonitoredFence.FenceValueCPUVirtualAddress
[out] 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.
Supportato a partire da Windows 10.
MonitoredFence.FenceValueGPUVirtualAddress
[out] Mapping in lettura/scrittura del valore di recinto per la GPU. Un driver può segnalare un nuovo valore di isolamento inserendo un comando di scrittura GPU per questo indirizzo in un buffer dei comandi e Dxgkrnl sbloccherà i camerieri per questo valore dell'oggetto recinto. A seconda del valore di No64BitAtomics limite, questo indirizzo punta a un valore sottostante a 32 bit o a 64 bit. Se il dispositivo non supporta la coerenza della cache con la CPU, non deve scrivere nel valore di isolamento usando l'indirizzo virtuale GPU. L'accesso al valore di recinto deve essere eseguito solo dalla CPU.
Supportato a partire da Windows 10.
MonitoredFence.EngineAffinity
[in] Un campo di bit, in cui ogni posizione di bit (a partire da zero) definisce un indice di adattatore fisico in un collegamento ADA (Link Display Adapter) in cui verrà eseguito il commit dell'indirizzo virtuale GPU. Zero indica che verrà eseguito il commit dell'indirizzo virtuale GPU in tutte le schede fisiche.
Supportato a partire da Windows 10.
MonitoredFence.Padding
PeriodicMonitoredFence
Struttura che contiene informazioni su un recinto monitorato periodico. Se il membro Type
Supportato a partire da Windows 10.
VidPnTargetID
[out] ID di output per cui il compositore desidera ricevere notifiche.
PeriodicMonitoredFence.hAdapter
[in] Handle per l'adapter associato a VidPnSourceID
PeriodicMonitoredFence.VidPnTargetId
PeriodicMonitoredFence.Time
[out] Rappresenta un offset prima di VSync (ora di VSync - Parametro Time). Il valore Time potrebbe non essere più lungo di un intervallo VSync (1/ DisplayModeRefresh). L'ora è specificata in unità di 100ns.
PeriodicMonitoredFence.FenceValueCPUVirtualAddress
[in] Mapping di sola lettura del valore di limite per la CPU
PeriodicMonitoredFence.FenceValueGPUVirtualAddress
[in] Mapping di sola lettura del valore di limite per la GPU
PeriodicMonitoredFence.EngineAffinity
[in] Definisce le schede fisiche in cui verrà eseguito il mapping della GPU VA
PeriodicMonitoredFence.Padding
Reserved
Struttura riservata per un uso futuro. Questa struttura contiene il membro seguente:
Reserved.Reserved[8]
SharedHandle
[out] Handle per l'oggetto di sincronizzazione condiviso se esiste attualmente un handle condiviso. Il driver deve condividere gli oggetti di sincronizzazione usando handle NT. Deve impostare il
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 7 |
intestazione |
d3dukmdt.h (include D3dumddi.h, D3dkmddi.h) |
Vedere anche
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
D3DDDI_SYNCHRONIZATIONOBJECT_TYPE