Compartir a través de


estructura DD_GETDRIVERINFO2DATA (d3dhal.h)

DirectX 8.0 y versiones posteriores solo.

DD_GETDRIVERINFO2DATA se pasa en el miembro lpvData de la estructura DD_GETDRIVERINFODATA cuando se especifica GUID_GetDriverInfo2 en el miembro guidInfo de DD_GETDRIVERINFODATA en una llamada DdGetDriverInfo .

Sintaxis

typedef struct _DD_GETDRIVERINFO2DATA {
  DWORD dwReserved;
  DWORD dwMagic;
  DWORD dwType;
  DWORD dwExpectedSize;
} DD_GETDRIVERINFO2DATA;

Miembros

dwReserved

Especifica un campo reservado. El controlador no debe leer ni escribir.

dwMagic

Especifica el número mágico. Tiene el valor D3DGDI2_MAGIC si se trata de una llamada a GetDriverInfo2 . De lo contrario, esta estructura es, de hecho, una llamada DD_STEREOMODE .

dwType

Especifica el tipo de información solicitada, que puede contener uno de los siguientes valores D3DGDI2_TYPE_Xxx . El controlador solo debe leer (no escribir) este miembro.

Valor Significado
D3DGDI2_TYPE_DEFER_AGP_FREES Solo sistemas operativos basados en NT.
Se usa para notificar al controlador que debe controlar correctamente la destrucción de la memoria AGP para las superficies. El runtime proporciona un puntero a una estructura de DD_FREE_DEFERRED_AGP_DATA en el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA.
A veces, el controlador recibe esta notificación antes de que se produzca un cambio de modo de visualización. El tiempo de ejecución solo envía esta notificación si se va a usar para realizar el cambio de modo de presentación. Los controladores deben comprobar el identificador de proceso (PID) del proceso que destruye la superficie en el proceso que creó la superficie. Si los PID son diferentes, es probable que el controlador no destruya las asignaciones en modo de usuario de la memoria AGP porque es posible que una aplicación siga usando la memoria.
D3DGDI2_TYPE_DEFERRED_AGP_AWARE Solo sistemas operativos basados en NT.
Se usa para informar al controlador de que el tiempo de ejecución envía D3DGDI2_TYPE_FREE_DEFERRED_AGP y D3DGDI2_TYPE_DEFER_AGP_FREES notificaciones en el momento adecuado (por ejemplo, después de que se libere el último bloqueo de memoria AGP pendiente). El runtime proporciona un puntero a una estructura de DD_DEFERRED_AGP_AWARE_DATA en el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_DXVERSION Se usa para notificar al controlador de la versión actual del entorno de ejecución de DX que usa la aplicación. El runtime proporciona un puntero a una estructura de DD_DXVERSION en el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_FREE_DEFERRED_AGP Solo sistemas operativos basados en NT.
Se usa para notificar al controlador que ahora es seguro destruir todas las asignaciones en modo de usuario de la memoria AGP . El controlador conserva estas asignaciones en modo de usuario cuando se destruyeron las superficies y recibió una notificación de D3DGDI2_TYPE_DEFER_AGP_FREES. El runtime proporciona un puntero a una estructura de DD_FREE_DEFERRED_AGP_DATA en el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA.
El controlador recibe esta notificación cuando todos los dispositivos de visualización del proceso dejan de usar superficies, texturas, búferes de vértices e índices bloqueados en el momento del cambio del modo de presentación.
D3DGDI2_TYPE_GETADAPTERGROUP DirectX 9.0 y versiones posteriores solo.
Se usa para consultar al controlador la identidad del grupo de adaptadores que forman parte de su tarjeta de vídeo de varios cabezales. Este grupo comparte hardware de vídeo como la memoria de vídeo y el acelerador 3D. El controlador debe establecer la estructura de datos a la que apunta el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA en DD_GETADAPTERGROUPDATA.
D3DGDI2_TYPE_GETD3DCAPS8 Este tipo indica que el tiempo de ejecución solicita recibir una estructura de D3DCAPS8 que proporciona las funcionalidades de estilo de DirectX 8.0 del dispositivo. El controlador debe copiar una estructura de D3DCAPS8 inicializada en el campo lpvData de la estructura DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_GETD3DCAPS9 Necesario solo para DirectX 9.0 y versiones posteriores.
Este tipo indica que el tiempo de ejecución solicita recibir una estructura de D3DCAPS9 que proporciona las funcionalidades de estilo de DirectX 9.0 del dispositivo. El controlador debe copiar una estructura de D3DCAPS9 inicializada en el campo lpvData de la estructura DD_GETDRIVERINFODATA.
D3DGDI2_TYPE_GETD3DQUERY DirectX 9.0 y versiones posteriores solo.
Se usa para consultar al controlador para obtener información sobre un tipo de consulta determinado que admite. El controlador debe establecer la estructura de datos a la que apunta el campolpvData de la estructura de datos DD_GETDRIVERINFODATA en DD_GETD3DQUERYDATA.
D3DGDI2_TYPE_GETD3DQUERYCOUNT DirectX 9.0 y versiones posteriores solo.
Se usa para consultar al controlador el número de tipos de consulta que admite. El controlador debe establecer la estructura de datos a la que apunta el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA en DD_GETD3DQUERYCOUNTDATA.
D3DGDI2_TYPE_GETDDIVERSION DirectX 9.0 y versiones posteriores solo.
Se usa para consultar el controlador para la versión del DDI que admite el controlador; esta versión de DDI, a su vez, depende de la versión de DirectX que realiza esta solicitud. El controlador debe establecer el miembro dwDDIVersion de la estructura DD_GETDDIVERSIONDATA , a la que apunta el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA, a la versión de DDI adecuada.
D3DGDI2_TYPE_GETEXTENDEDMODE DirectX 9.0 y versiones posteriores solo.
Se usa para consultar al controlador para obtener información sobre un modo de visualización extendido determinado que admite. El controlador debe establecer la estructura de datos a la que apunta el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA en DD_GETEXTENDEDMODEDATA.
D3DGDI2_TYPE_GETEXTENDEDMODECOUNT DirectX 9.0 y versiones posteriores solo.
Se usa para consultar al controlador el número de modos de visualización extendidos que admite. El controlador debe establecer la estructura de datos a la que apunta el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA en DD_GETEXTENDEDMODECOUNTDATA.
D3DGDI2_TYPE_GETFORMAT Se usa para consultar un formato de superficie determinado desde el controlador. La estructura de datos a la que apunta el campo lpvDatafield de la estructura de datos de DD_GETDRIVERINFODATA es DD_GETFORMATDATA .
D3DGDI2_TYPE_GETFORMATCOUNT Se usa para solicitar el número de formatos de superficie de estilo DirectX 8.0 y posteriores admitidos por el controlador. La estructura de datos a la que apunta el campolpvData del DD_GETDRIVERINFODATA es DD_GETFORMATCOUNTDATA.
D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS DirectX 9.0 y versiones posteriores solo.
Se usa para consultar al controlador el número de niveles de calidad de varias muestras para un formato de destino de representación determinado que admita. Tanto si el dispositivo de pantalla admite el muestreo múltiple enmascarable como el submascarable, el controlador del dispositivo debe proporcionar el número de niveles de calidad para el D3DMULTISAMPLE_NONMASKABLE tipo de muestra múltiple. El controlador debe establecer la estructura de datos a la que apunta el campo lpvData de la estructura de datos DD_GETDRIVERINFODATA en DD_MULTISAMPLEQUALITYLEVELSDATA.

dwExpectedSize

Especifica el tamaño esperado, en bytes, de la información solicitada. El controlador solo debe leer (no escribir) este miembro.

Comentarios

El miembro dwExpectedSize de la estructura DD_GETDRIVERINFODATA no se usa cuando se realiza una solicitud GetDriverInfo2 . Su valor no está definido en este caso y debe omitirse. En su lugar, el tamaño esperado real de los datos se encuentra en el miembro dwExpectedSize de DD_GETDRIVERINFO2DATA.

En el fragmento de código siguiente se muestra cómo controlar GetDriverInfo2:

D3DCAPS8 myD3DCaps8 = { ... };

DWORD CALLBACK
DdGetDriverInfo(LPDDHAL_GETDRIVERINFODATA lpData)
{
  if (MATCH_GUID((lpData->guidInfo), GUID_GetDriverInfo2))
  {
    ASSERT(NULL != lpData);
    ASSERT(NULL != lpData->lpvData);

    // Is this a call to GetDriverInfo2 or DDStereoMode?
 if (((DD_GETDRIVERINFO2DATA*)(lpData->lpvData))->dwMagic
      == D3DGDI2_MAGIC)
 {
      // Yes, it's a call to GetDriverInfo2, fetch the
 // DD_GETDRIVERINFO2DATA data structure.
      DD_GETDRIVERINFO2DATA* pgdi2 = lpData->lpvData;
 ASSERT(NULL != pgdi2);
      // What type of request is this?
      switch (pgdi2->dwType)
      {
        case D3DGDI2_TYPE_GETD3DCAPS8:
        {
          // The runtime is requesting the DX8 D3D caps
          // so copy them over now. It should be noted
          // that the dwExpectedSize field of
          // DD_GETDRIVERINFODATA is not used for
          // GetDriverInfo2 calls and should be ignored.
          size_t copySize = min(
            sizeof(myD3DCaps8), pgdi2->dwExpectedSize);
          memcpy(lpData->lpvData, &myD3DCaps8, copySize);
          lpData->dwActualSize = copySize;
          lpData->ddRVal       = DD_OK;
          return DDHAL_DRIVER_HANDLED;
        }
        default:
          // For any other GetDriverInfo2 types not handled
          // or understood by the driver set a ddRVal of
          // DDERR_CURRENTLYNOTAVAIL and return
          // DDHAL_DRIVER_HANDLED.
          return DDHAL_DRIVER_HANDLED;
      }
    }
    else
    {
      // It must be a call to request for stereo mode support.
 // Fetch the stereo mode data
      DD_STEREOMODE* pStereoMode = lpData->lpvData;
 ASSERT(NULL != pStereoMode);

      // Process the stereo mode request...
      lpData->dwActualSize = sizeof(DD_STEREOMODE);
      lpData->ddRVal       = DD_OK;
      return DDHAL_DRIVER_HANDLED;
    }
  }

  // Handle any other device GUIDs...

} // DdGetDriverInfo

Para obtener más información sobre D3DCAPS8 y D3DCAPS9, consulte la documentación del SDK de DirectX.

Requisitos

Requisito Valor
Header d3dhal.h (incluya D3dhal.h)

Consulte también

DD_DEFERRED_AGP_AWARE_DATA

DD_DXVERSION

DD_FREE_DEFERRED_AGP_DATA

DD_GETADAPTERGROUPDATA

DD_GETD3DQUERYCOUNTDATA

DD_GETD3DQUERYDATA

DD_GETDDIVERSIONDATA

DD_GETDRIVERINFODATA

DD_GETEXTENDEDMODECOUNTDATA

DD_GETEXTENDEDMODEDATA

DD_GETFORMATCOUNTDATA

DD_GETFORMATDATA

DD_MULTISAMPLEQUALITYLEVELSDATA

DD_STEREOMODE

DdGetDriverInfo