D3DDDI_SYNCHRONIZATIONOBJECTINFO2 struttura (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 {
      void D3DKMT_PTR(
    HANDLE unnamedParam1,
    Event  unnamedParam2
  );
    } CPUNotification;
    struct {
      D3DKMT_ALIGN64 UINT64                 InitialFenceValue;
      void                                  D3DKMT_PTR(
    VOID                        *unnamedParam1,
    FenceValueCPUVirtualAddress unnamedParam2
  );
      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                                  D3DKMT_PTR(
    VOID                        *unnamedParam1,
    FenceValueCPUVirtualAddress unnamedParam2
  );
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
      UINT                                  EngineAffinity;
      UINT                                  Padding;
    } PeriodicMonitoredFence;
    struct {
      D3DKMT_ALIGN64 UINT64 Reserved[8];
    } Reserved;
  };
  D3DKMT_HANDLE                      SharedHandle;
} D3DDDI_SYNCHRONIZATIONOBJECTINFO2;

Members

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 a bit, attributi dell'oggetto di sincronizzazione.

SynchronizationMutex

Struttura che contiene informazioni su un mutex di sincronizzazione. Se il membro Type è uguale a D3DDDI_SYNCHRONIZATION_MUTEX, l'unione in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una struttura SyncMutex .

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 è uguale a D3DDDI_SEMAPHORE, l'unione in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una struttura di semaforo .

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 è uguale a D3DDDI_FENCE, l'unione in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una struttura Di recinzione .

Fence.FenceValue

Valore a 64 bit che specifica il valore iniziale del recinto.

CPUNotification

Struttura che contiene informazioni su una notifica della CPU. Se il membro Type è uguale a D3DDDI_CPU_NOTIFICATION, l'unione in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una struttura CPUNotification .

void D3DKMT_PTR( HANDLE unnamedParam1, Event unnamedParam2)

MonitoredFence

Struttura che contiene informazioni su un recinto monitorato. Se il membro Type è uguale a D3DDDI_MONITORED_FENCE, l'unione in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una struttura MonitorFence .

Le recinzioni monitorate possono essere condivise solo usando handle NT per motivi di sicurezza, pertanto il flag NtSecuritySharing deve essere impostato quando si usa una recinzione monitorata.

Supportato a partire da Windows 10.

MonitoredFence.InitialFenceValue

[in] Valore a 64 bit che specifica il valore iniziale del recinto.

Supportato a partire da Windows 10.

void D3DKMT_PTR( VOID *unnamedParam1, FenceValueCPUVirtualAddress unnamedParam2)

MonitoredFence.FenceValueGPUVirtualAddress

[out] Mapping di lettura-scrittura del valore di recinzione per la GPU. Un driver può segnalare un nuovo valore di recinzione inserendo un comando di scrittura GPU per questo indirizzo in un buffer dei comandi e Dxgkrnl sbloccherà i camerieri per questo valore dell'oggetto di recinzione. A seconda del valore del limite No64BitAtomics , questo indirizzo punta a un valore sottostante a 32 bit o a 64 bit. Se il dispositivo non supporta la coesistenza della cache con la CPU, non deve scrivere nel valore di recinzione usando l'indirizzo virtuale della GPU. L'accesso al valore di recinzione deve essere eseguito solo dalla CPU.

Supportato a partire da Windows 10.

MonitoredFence.EngineAffinity

[in] Un campo bit, in cui ogni posizione di bit (a partire da zero) definisce un indice di adattatore fisico in un collegamento dell'adapter display (LDA) in cui verrà eseguito il commit dell'indirizzo virtuale DELLA GPU. Zero significa che l'indirizzo virtuale DELLA GPU verrà eseguito il commit 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 è uguale a D3DDDI_PERIODIC_MONITORED_FENCE, l'unione in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una struttura MonitorFence .

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 del parametro VSync (ora di VSync - Time). Il valore Time potrebbe non essere più lungo di un intervallo VSync (1/DisplayModeRefresh). L'ora viene specificata in unità di 100ns.

PeriodicMonitoredFence.FenceValueGPUVirtualAddress

[in] Mapping di sola lettura del valore di recinzione 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 l'uso futuro. Questa struttura contiene il membro seguente:

Reserved.Reserved[8]

SharedHandle

[out] Handle per l'oggetto di sincronizzazione condiviso se esiste un handle condiviso. Il driver deve condividere oggetti di sincronizzazione usando handle NT. Deve impostare la D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS::NtSecuritySharing per indicare che l'oggetto verrà condiviso usando handle NT e chiamare D3DKMTShareObjects per ottenere un handle NT. L'uso di handle globali non è sicuro. Qualsiasi processo può indovinare un handle globale e aprire un oggetto condiviso. Gli handle globali sono supportati solo per motivi di compatibilità con i runtime D3D precedenti.

Requisiti

Requisito Valore
Client minimo supportato Windows 7
Intestazione d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

Vedi anche

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DDDI_SYNCHRONIZATIONOBJECT_TYPE

D3DKMTCreateSynchronizationObject

D3DKMT_CREATESYNCHRONIZATIONOBJECT2