Función DrvEscape (winddi.h)
La función DrvEscape se usa para recuperar información de un dispositivo que no está disponible en una interfaz de controlador de dispositivo independiente del dispositivo; la consulta determinada depende del valor del parámetro iEsc .
Sintaxis
ULONG DrvEscape(
[in] SURFOBJ *pso,
[in] ULONG iEsc,
[in] ULONG cjIn,
[in] PVOID pvIn,
[in] ULONG cjOut,
[out] PVOID pvOut
);
Parámetros
[in] pso
Puntero a una estructura SURFOBJ que describe la superficie a la que se dirige la llamada.
[in] iEsc
Especifica una consulta. El significado de los demás parámetros depende de este valor. QUERYESCSUPPORT es el único valor predefinido; consulta si el controlador admite una función de escape determinada. En este caso, pvIn apunta a un número de función de escape; cjOut y pvOut se omiten. Si se admite la función especificada, el valor devuelto es distinto de cero.
[in] cjIn
Especifica el tamaño, en bytes, del búfer al que apunta pvIn.
[in] pvIn
Puntero a los datos de entrada de la llamada. El formato de los datos de entrada depende de la consulta especificada por el parámetro iEsc .
[in] cjOut
Especifica el tamaño, en bytes, del búfer al que apunta pvOut.
[out] pvOut
Puntero al búfer de salida. El formato de los datos de salida depende de la consulta especificada por el parámetro iEsc .
Valor devuelto
El valor devuelto depende de la consulta especificada por el parámetro iEsc . Si no se admite la función especificada en la consulta, el valor devuelto es cero.
Comentarios
No se permite dibujar en el dispositivo en esta función. DrvDrawEscape se usará para la compatibilidad especializada con dibujos.
GDI pasa datos directamente desde una aplicación cliente (posiblemente malintencionada) al controlador, lo que significa que la función DrvEscape debe validar todos los argumentos de entrada. En concreto, esta función debe:
- Compruebe que el valor recibido en el parámetro iEsc representa una consulta válida.
- Compruebe que el tamaño del búfer de entrada (el valor del parámetro cjIn ) es válido para la consulta especificada.
- Compruebe que el contenido del búfer al que apunta el parámetro pvIn es válido para la consulta especificada.
- Compruebe que el tamaño del búfer de salida especificado (el valor del parámetro cjOut ) es válido para la consulta especificada.
DrvEscape es opcional para todos los controladores.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | winddi.h (incluya Winddi.h) |