estructura D3DDDI_SYNCHRONIZATIONOBJECTINFO2 (d3dukmdt.h)
La estructura D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene información sobre un objeto de sincronización de segunda generación.
Sintaxis
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;
Miembros
Type
[in] Valor de tipo D3DDDI_SYNCHRONIZATIONOBJECT_TYPE que indica el tipo de objeto de sincronización.
Flags
[in] Estructura D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS que especifica, en marcas de campo de bits, atributos del objeto de sincronización.
SynchronizationMutex
Estructura que contiene información sobre una exclusión mutua de sincronización. Si el miembro type de
SynchronizationMutex.InitialState
Valor booleano que indica si la exclusión mutua de sincronización es propiedad inicialmente de un objeto . Un valor true indica que la exclusión mutua es propiedad; FALSE indica que la exclusión mutua no es propiedad de .
Semaphore
Estructura que contiene información sobre un semáforo. Si el miembro type
Semaphore.MaxCount
Número máximo de eventos que un objeto puede estar esperando.
Semaphore.InitialCount
Número inicial de eventos que un objeto está esperando.
Fence
Estructura que contiene información sobre una valla. Si el miembro type de
Fence.FenceValue
Valor de 64 bits que especifica el valor de barrera inicial.
CPUNotification
Estructura que contiene información sobre una notificación de CPU. Si el miembro type de
CPUNotification.Event
Identificador del evento de notificación de CPU.
MonitoredFence
Estructura que contiene información sobre una valla supervisada. Si el miembro type de
Las barreras supervisadas solo se pueden compartir mediante identificadores NT por motivos de seguridad, por lo que la marca NtSecuritySharing debe establecerse al usar una valla supervisada.
Se admite a partir de Windows 10.
MonitoredFence.InitialFenceValue
[in] Valor de 64 bits que especifica el valor de barrera inicial.
Se admite a partir de Windows 10.
MonitoredFence.FenceValueCPUVirtualAddress
[out] Asignación de solo lectura del valor de barrera para la CPU. Se trata de una dirección de modo de usuario legible del proceso que creó el objeto de barrera supervisada. Para las plataformas de 32 bits que admiten lecturas atómicas de 64 bits a través de métodos como InterlockedCompareExchange64(pointer,0,0)
, la asignación se realizará de lectura y escritura en lugar de solo lectura para evitar una infracción de acceso durante la operación interbloqueada. Dependiendo del valor de límite no64BitAtomics, esta dirección apunta a un valor subyacente de 32 o 64 bits.
Se admite a partir de Windows 10.
MonitoredFence.FenceValueGPUVirtualAddress
[out] Asignación de lectura y escritura del valor de barrera para la GPU. Un controlador puede indicar un nuevo valor de barrera insertando un comando de escritura de GPU para esta dirección en un búfer de comandos y Dxgkrnl desbloqueará a los esperadores para este valor de objeto de barrera. Dependiendo del valor de límite no64BitAtomics, esta dirección apunta a un valor subyacente de 32 o 64 bits. Si el dispositivo no admite la coherencia de caché con la CPU, no debe escribir en el valor de barrera mediante la dirección virtual de GPU. El acceso al valor de barrera solo debe realizarse mediante la CPU.
Se admite a partir de Windows 10.
MonitoredFence.EngineAffinity
[in] Un campo de bits, donde cada posición de bits (a partir de cero) define un índice de adaptador físico en un vínculo del adaptador de pantalla de vínculo (LDA) donde se confirmará la dirección virtual de GPU. Cero significa que la dirección virtual de GPU se confirmará en todos los adaptadores físicos.
Se admite a partir de Windows 10.
MonitoredFence.Padding
PeriodicMonitoredFence
Estructura que contiene información sobre una valla supervisada periódicamente. Si el miembro type
Se admite a partir de Windows 10.
VidPnTargetID
[out] Identificador de salida para el que el compositor desea recibir notificaciones.
PeriodicMonitoredFence.hAdapter
[in] Identificador del adaptador asociado a VidPnSourceID
PeriodicMonitoredFence.VidPnTargetId
PeriodicMonitoredFence.Time
[out] Representa un desplazamiento antes de la VSync (hora de VSync : parámetro Time). Es posible que el valor de hora no sea mayor que un intervalo de VSync (1 / DisplayModeRefresh). El tiempo se especifica en unidades de 100ns.
PeriodicMonitoredFence.FenceValueCPUVirtualAddress
[in] Asignación de solo lectura del valor de barrera para la CPU
PeriodicMonitoredFence.FenceValueGPUVirtualAddress
[in] Asignación de solo lectura del valor de barrera para la GPU
PeriodicMonitoredFence.EngineAffinity
[in] Define adaptadores físicos en los que se asignará la VA de GPU.
PeriodicMonitoredFence.Padding
Reserved
Estructura reservada para uso futuro. Esta estructura contiene el siguiente miembro:
Reserved.Reserved[8]
SharedHandle
[out] Identificador del objeto de sincronización compartido si existe actualmente un identificador compartido. El controlador debe compartir objetos de sincronización mediante identificadores NT. Debe establecer el
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 7 |
encabezado de |
d3dukmdt.h (incluya D3dumddi.h, D3dkmddi.h) |
Consulte también
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
D3DDDI_SYNCHRONIZATIONOBJECT_TYPE