Compartir a través de


PDD_GETDRIVERINFO función de devolución de llamada (ddrawint.h)

La función DdGetDriverInfo consulta el controlador para obtener funcionalidades adicionales de DirectDraw y Direct3D compatibles con el controlador.

Sintaxis

PDD_GETDRIVERINFO PddGetdriverinfo;

DWORD PddGetdriverinfo(
  PDD_GETDRIVERINFODATA unnamedParam1
)
{...}

Parámetros

unnamedParam1

Apunta a una estructura de DD_GETDRIVERINFODATA que contiene la información necesaria para realizar la consulta.

Valor devuelto

DdGetDriverInfo debe devolver DDHAL_DRIVER_HANDLED.

Comentarios

Los controladores deben implementar DdGetDriverInfo para exponer la funcionalidad de DirectDraw compatible con el controlador que no se puede devolver a través de DrvEnableDirectDraw.

La función DrvGetDirectDrawInfo del controlador devuelve un puntero a DdGetDriverInfo en el miembro GetDriverInfo de la estructura DD_HALINFO .

Para informar a DirectDraw de que el miembro GetDriverInfo se ha establecido correctamente, el controlador también debe establecer el DDHALINFO_GETDRIVERINFOSET bit del miembro dwFlags en la estructura DD_HALINFO.

DdGetDriverInfo debe determinar si el controlador y su hardware admiten las devoluciones de llamada o las funcionalidades solicitadas por el GUID especificado. Para todos los GUID excepto GUID_D3DParseUnknownCommandCallback, si el controlador proporciona la compatibilidad solicitada, debe establecer los siguientes miembros de la estructura DD_GETDRIVERINFODATA :

  • Establezca dwActualSize en el tamaño en bytes de la estructura de devolución de llamada o funcionalidad que devuelve el controlador.
  • En la memoria a la que lpvData apunta, inicialice los miembros de la estructura de devolución de llamada o funcionalidad correspondiente a la característica solicitada de la siguiente manera:
    • Establezca el miembro dwSize en el tamaño en bytes de la estructura.
    • En el caso de las devoluciones de llamada, establezca los punteros de función para que apunten a esas devoluciones de llamada implementadas por el controlador y establezca los bits del miembro dwFlags para indicar qué funciones admite el controlador.
    • En el caso de las funcionalidades, establezca los miembros adecuados de la estructura de funcionalidades con valores admitidos por el controlador o dispositivo.
  • Devuelve DD_OK en ddRVal.
Si el controlador no admite la característica, debe establecer ddRVal en DDERR_CURRENTLYNOTAVAIL y devolver.

DirectDraw informa al controlador de la cantidad esperada de datos en el miembro dwExpectedSize de la estructura DD_GETDRIVERINFODATA . El controlador no debe rellenar más datos que dwExpectedSize bytes.

Para evitar problemas con DdGetDriverInfo:

  • No implemente dependencias basadas en el orden en el que se llama a DdGetDriverInfo . Por ejemplo, evite enlazar los pasos de inicialización del controlador en DdGetDriverInfo.
  • No intente determinar la versión de DirectDraw en función de las llamadas a DdGetDriverInfo.
  • No suponga nada sobre el número de veces que DirectDraw llamará al controlador o el número de veces que DirectDraw consultará un GUID determinado. Es posible que DirectDraw sondee el controlador repetidamente con el mismo GUID. La implementación de suposiciones sobre esto en el controlador dificulta su compatibilidad con entornos de ejecución futuros.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado ddrawint.h (incluya Winddi.h)

Consulte también

DD_GETDRIVERINFODATA

DrvEnableDirectDraw

DrvGetDirectDrawInfo