estrutura D3DDDI_ESCAPEFLAGS (d3dukmdt.h)
A estrutura D3DDDI_ESCAPEFLAGS identifica como o DRIVER de exibição do modo de usuário (UMD) (ou driver cliente) compartilha informações com o KMD (driver de miniporto de exibição) no modo kernel.
Sintaxe
typedef struct _D3DDDI_ESCAPEFLAGS {
union {
struct {
UINT HardwareAccess : 1;
UINT DeviceStatusQuery : 1;
UINT ChangeFrameLatency : 1;
UINT NoAdapterSynchronization : 1;
#if ...
UINT Reserved : 1;
UINT VirtualMachineData : 1;
UINT DriverKnownEscape : 1;
UINT DriverCommonEscape : 1;
#if ...
UINT Reserved2 : 24;
#else
UINT Reserved2 : 26;
#endif
#elif
UINT Reserved : 28;
#elif
UINT Reserved : 29;
#else
UINT Reserved : 31;
#endif
};
UINT Value;
};
} D3DDDI_ESCAPEFLAGS;
Membros
HardwareAccess
Um valor UINT que especifica se o sistema operacional executa o segundo nível de sincronização no KMD para a chamadaDxgkDdiEscape. Se o driver exigir o segundo nível de sincronização e o sinalizador HardwareAccess não estiver definido, a chamada para a função de DxgkDdiEscape do driver deverá falhar.
A partir do Windows 8.1, se esse membro estiver definido, deviceStatusQuery e ChangeFrameLatency devem ser definidos como zero.
DeviceStatusQuery
Se definido, quando a função pfnEscapeCb for chamada e a D3DDDICB_ESCAPE.membro PrivateDriverDataSize é sizeof(D3DDDI_EXECUTIONSTATEESCAPE)
, o runtime do Direct3D interpreta o D3DDDICB_ESCAPE.pPrivateDriverData membro como um ponteiro para um buffer que contém uma estrutura D3DDDI_EXECUTIONSTATEESCAPE. Além disso, o runtime processa o pfnEscapeCb como uma consulta de status gravando as informações solicitadas no buffer fornecido em vez de enviar uma chamada DxgkDdiE scape para o KMD.
Se esse membro estiver definido, hardwareAccess e ChangeFrameLatency devem ser definidos como zero.
Com suporte a partir do Windows 8.1.
O sistema operacional ignorará esse membro se ele for anterior ao Windows 8.1 ou se o driver do modo de usuário tiver sido inicializado com uma chamada OpenAdapterXxx em que o pOpenData– membrointerface> indica o Direct3D versão 8 ou anterior.
ChangeFrameLatency
Se definido, quando a função pfnEscapeCb for chamada, o D3DDDICB_ESCAPE.privateDriverDataSize membro é sizeof(D3DDDI_FRAMELATENCYESCAPE)
e as condições em Comentários também são atendidas, o runtime do Direct3D interpreta o D3DDDICB_ESCAPE.pPrivateDriverData membro como um ponteiro para um buffer que contém uma estrutura D3DDDI_FRAMELATENCYESCAPE. Além disso, o runtime processa o pfnEscapeCb como uma solicitação para alterar a latência máxima do subsistema de kernel de elementos gráficos DirectX gravando as informações solicitadas no buffer fornecido em vez de enviar uma chamada DxgkDdiEscape para o KMD.
Se esse membro estiver definido, hardwareAccess e DeviceStatusQuery deverão ser definidos como zero.
Com suporte a partir do Windows 8.1.
O sistema operacional ignorará esse membro se ele for anterior ao Windows 8.1 ou se o driver do modo de usuário tiver sido inicializado com uma chamada OpenAdapterXxx em que o pOpenData– membrointerface> indica o Direct3D versão 8 ou anterior.
NoAdapterSynchronization
Reserved
Esse membro é reservado e deve ser definido como zero.
VirtualMachineData
Indica que DxgkDdiEscape é chamado de uma máquina virtual. Esse sinalizador não pode ser definido no modo de usuário. Suporte a partir do WDDM 2.2.
DriverKnownEscape
Os dados privados do driver apontam para uma estrutura bem conhecida.
DriverCommonEscape
Os dados privados apontam para uma estrutura definida por runtime D3D.
Reserved2
Esse membro é reservado e deve ser definido como zero.
Value
Um membro do sindicato contido em D3DDDI_ESCAPEFLAGS que pode conter um valor de 32 bits que identifica como compartilhar informações.
Observações
Se ChangeFrameLatency estiver definida, uma chamada pfnEscapeCb será bem-sucedida somente se:
- O KMD é responsável por uma LDA (configuração de adaptador vinculado) fornecida por um único fornecedor.
- O aplicativo assumiu a propriedade exclusiva em tela inteira da exibição em algum momento de seu tempo de vida.
- O aplicativo não substituiu o valor de latência de quadro máximo padrão de 3.
Se essas condições não forem atendidas, chamada pfnEscapeCb retornará um código de erro E_INVALIDARG.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista (WDDM 1.0) |
cabeçalho | d3dukmdt.h (inclua D3dumddi.h, D3dkmddi.h) |