Função DrvEscape (winddi.h)
A função DrvEscape é usada para recuperar informações de um dispositivo que não está disponível em uma interface de driver de dispositivo independente do dispositivo; a consulta específica depende do valor do parâmetro iEsc .
Sintaxe
ULONG DrvEscape(
[in] SURFOBJ *pso,
[in] ULONG iEsc,
[in] ULONG cjIn,
[in] PVOID pvIn,
[in] ULONG cjOut,
[out] PVOID pvOut
);
Parâmetros
[in] pso
Ponteiro para uma estrutura SURFOBJ que descreve a superfície para a qual a chamada é direcionada.
[in] iEsc
Especifica uma consulta. O significado dos outros parâmetros depende desse valor. QUERYESCSUPPORT é o único valor predefinido; ele consulta se o driver dá suporte a uma função de escape específica. Nesse caso, pvIn aponta para um número de função de escape; cjOut e pvOut são ignorados. Se houver suporte para a função especificada, o valor retornado será diferente de zero.
[in] cjIn
Especifica o tamanho, em bytes, do buffer apontado por pvIn.
[in] pvIn
Ponteiro para os dados de entrada da chamada. O formato dos dados de entrada depende da consulta especificada pelo parâmetro iEsc .
[in] cjOut
Especifica o tamanho, em bytes, do buffer apontado por pvOut.
[out] pvOut
Ponteiro para o buffer de saída. O formato dos dados de saída depende da consulta especificada pelo parâmetro iEsc .
Retornar valor
O valor retornado depende da consulta especificada pelo parâmetro iEsc . Se não houver suporte para a função especificada na consulta, o valor retornado será zero.
Comentários
O desenho no dispositivo não é permitido nessa função. O DrvDrawEscape deve ser usado para suporte de desenho especializado.
A GDI passa dados diretamente de um aplicativo cliente (possivelmente mal-intencionado) para o driver, o que significa que a função DrvEscape deve validar todos os argumentos de entrada. Especificamente, essa função deve:
- Verifique se o valor recebido no parâmetro iEsc representa uma consulta válida.
- Verifique se o tamanho do buffer de entrada (o valor no parâmetro cjIn ) é válido para a consulta especificada.
- Verifique se o conteúdo do buffer apontado pelo parâmetro pvIn é válido para a consulta especificada.
- Verifique se o tamanho do buffer de saída especificado (o valor no parâmetro cjOut ) é válido para a consulta especificada.
O DrvEscape é opcional para todos os drivers.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | winddi.h (inclua Winddi.h) |