estrutura D3DDDI_SYNCHRONIZATIONOBJECTINFO2 (d3dukmdt.h)
A estrutura D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contém informações sobre um objeto de sincronização de segunda geração.
Sintaxe
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;
Membros
Type
[in] Um valor do tipo D3DDDI_SYNCHRONIZATIONOBJECT_TYPE que indica o tipo de objeto de sincronização.
Flags
[in] Uma estrutura D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS que especifica, em sinalizadores de campo de bit, atributos do objeto de sincronização.
SynchronizationMutex
Uma estrutura que contém informações sobre um mutex de sincronização. Se o membro tipo
SynchronizationMutex.InitialState
Um valor booliano que indica se o mutex de sincronização pertence inicialmente a um objeto. Um valor de TRUE indica que o mutex é de propriedade; FALSE indica que o mutex não é de propriedade.
Semaphore
Uma estrutura que contém informações sobre um semáforo. Se o membro tipo
Semaphore.MaxCount
O número máximo de eventos que um objeto pode estar aguardando.
Semaphore.InitialCount
O número inicial de eventos que um objeto está aguardando.
Fence
Uma estrutura que contém informações sobre uma cerca. Se o membro tipo
Fence.FenceValue
Um valor de 64 bits que especifica o valor de cerca inicial.
CPUNotification
Uma estrutura que contém informações sobre uma notificação de CPU. Se o membro tipo
CPUNotification.Event
O identificador do evento de notificação da CPU.
MonitoredFence
Uma estrutura que contém informações sobre uma cerca monitorada. Se o membro tipo
As cercas monitoradas só podem ser compartilhadas usando identificadores NT por motivos de segurança, portanto, o sinalizador de NtSecuritySharing do
Com suporte a partir do Windows 10.
MonitoredFence.InitialFenceValue
[in] Um valor de 64 bits que especifica o valor de cerca inicial.
Com suporte a partir do Windows 10.
MonitoredFence.FenceValueCPUVirtualAddress
[out] Um mapeamento somente leitura do valor da cerca para a CPU. Esse é um endereço de modo de usuário legível do processo que criou o objeto de cerca monitorado. Para plataformas de 32 bits que dão suporte a leituras atômicas de 64 bits por meio de métodos como InterlockedCompareExchange64(pointer,0,0)
, o mapeamento será feito leitura-gravação em vez de somente leitura para evitar uma violação de acesso durante a operação intertravada. Dependendo do valor de limite de No64BitAtomics, esse endereço aponta para um valor subjacente de 32 bits ou 64 bits.
Com suporte a partir do Windows 10.
MonitoredFence.FenceValueGPUVirtualAddress
[out] Um mapeamento de leitura/gravação do valor da cerca para a GPU. Um driver pode sinalizar um novo valor de cerca inserindo um comando de gravação de GPU para esse endereço em um buffer de comando e Dxgkrnl desbloqueará garçons para esse valor de objeto de cerca. Dependendo do valor de limite de No64BitAtomics, esse endereço aponta para um valor subjacente de 32 bits ou 64 bits. Se o dispositivo não der suporte à coerência de cache com a CPU, ele não deverá gravar no valor da cerca usando o endereço virtual da GPU. O acesso ao valor da cerca deve ser feito apenas pela CPU.
Com suporte a partir do Windows 10.
MonitoredFence.EngineAffinity
[in] Um campo de bits, em que cada posição de bit (a partir de zero) define um índice de adaptador físico em um link LDA (adaptador de exibição de link) em que o endereço virtual da GPU será confirmado. Zero significa que o endereço virtual da GPU será confirmado para todos os adaptadores físicos.
Com suporte a partir do Windows 10.
MonitoredFence.Padding
PeriodicMonitoredFence
Uma estrutura que contém informações sobre uma cerca monitorada periódica. Se o membro tipo
Com suporte a partir do Windows 10.
VidPnTargetID
[out] A ID de saída para a qual o compositor deseja receber notificações.
PeriodicMonitoredFence.hAdapter
[in] Um identificador para o adaptador associado ao VidPnSourceID
PeriodicMonitoredFence.VidPnTargetId
PeriodicMonitoredFence.Time
[out] Representa um deslocamento antes do VSync (hora de VSync – parâmetro time). O valor time pode não ser maior que um intervalo VSync (1/DisplayModeRefresh). O tempo é especificado em unidades de 100ns.
PeriodicMonitoredFence.FenceValueCPUVirtualAddress
[in] Mapeamento somente leitura do valor da cerca para a CPU
PeriodicMonitoredFence.FenceValueGPUVirtualAddress
[in] Mapeamento somente leitura do valor da cerca para a GPU
PeriodicMonitoredFence.EngineAffinity
[in] Define adaptadores físicos em que o VA da GPU será mapeado
PeriodicMonitoredFence.Padding
Reserved
Uma estrutura reservada para uso futuro. Essa estrutura contém o seguinte membro:
Reserved.Reserved[8]
SharedHandle
[out] Um identificador para o objeto de sincronização compartilhado se houver um identificador compartilhado no momento. O driver deve compartilhar objetos de sincronização usando identificadores NT. Ele deve definir o
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 7 |
cabeçalho | d3dukmdt.h (inclua D3dumddi.h, D3dkmddi.h) |
Consulte também
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
D3DDDI_SYNCHRONIZATIONOBJECT_TYPE