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 {
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;
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 es igual a D3DDDI_SYNCHRONIZATION_MUTEX, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura SynchronizationMutex .
SynchronizationMutex.InitialState
Valor booleano que indica si la exclusión mutua de sincronización es propiedad inicial de un objeto . Un valor de TRUE indica que la exclusión mutua es propiedad; FALSE indica que la exclusión mutua no es propiedad.
Semaphore
Estructura que contiene información sobre un semáforo. Si el miembro Type es igual a D3DDDI_SEMAPHORE, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura semáforo .
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 es igual a D3DDDI_FENCE, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura Delimitación .
Fence.FenceValue
Valor de 64 bits que especifica el valor inicial de la barrera.
CPUNotification
Estructura que contiene información sobre una notificación de CPU. Si el miembro Type es igual a D3DDDI_CPU_NOTIFICATION, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura CPUNotification .
void D3DKMT_PTR( HANDLE unnamedParam1, Event unnamedParam2)
MonitoredFence
Estructura que contiene información sobre una valla supervisada. Si el miembro Type es igual a D3DDDI_MONITORED_FENCE, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura MonitoredFence .
Las vallas 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 inicial de la barrera.
Se admite a partir de Windows 10.
void D3DKMT_PTR( VOID *unnamedParam1, FenceValueCPUVirtualAddress unnamedParam2)
MonitoredFence.FenceValueGPUVirtualAddress
[out] Una 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 No64BitAtomics cap, 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ódica. Si el miembro Type es igual a D3DDDI_PERIODIC_MONITORED_FENCE, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura MonitoredFence .
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 sincronización virtual (hora de VSync : parámetro Time). El valor time puede no ser mayor que un intervalo de VSync (1 / DisplayModeRefresh). El tiempo se especifica en unidades de 100ns.
PeriodicMonitoredFence.FenceValueGPUVirtualAddress
[in] Asignación de solo lectura del valor de barrera para la GPU
PeriodicMonitoredFence.EngineAffinity
[in] Define los 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 actualmente existe un identificador compartido. El controlador debe compartir objetos de sincronización mediante identificadores NT. Debe establecer el D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS::NtSecuritySharing para indicar que el objeto se compartirá mediante identificadores NT y llamará a D3DKMTShareObjects para obtener un identificador NT. El uso de identificadores globales no es seguro. Cualquier proceso puede adivinar un identificador global y abrir objetos compartidos. Los identificadores globales solo se admiten por motivos de compatibilidad con entornos de ejecución D3D antiguos.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 |
Encabezado | d3dukmdt.h (incluya D3dumddi.h, D3dkmddi.h) |
Consulte también
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de