DXGKDDI_START_DEVICE función de devolución de llamada (dispmprt.h)

La función DxgkDdiStartDevice prepara un adaptador de pantalla para recibir solicitudes de E/S.

Sintaxis

DXGKDDI_START_DEVICE DxgkddiStartDevice;

NTSTATUS DxgkddiStartDevice(
  [in]  IN_CONST_PVOID MiniportDeviceContext,
  [in]  IN_PDXGK_START_INFO DxgkStartInfo,
  [in]  IN_PDXGKRNL_INTERFACE DxgkInterface,
  [out] OUT_PULONG NumberOfVideoPresentSources,
  [out] OUT_PULONG NumberOfChildren
)
{...}

Parámetros

[in] MiniportDeviceContext

Identificador de un bloque de contexto asociado a un adaptador de pantalla. La función DxgkDdiAddDevice del controlador de miniporte de pantalla proporcionó anteriormente este identificador al subsistema del kernel de gráficos de DirectX.

[in] DxgkStartInfo

Puntero a una estructura de DXGK_START_INFO que contiene información que el controlador de miniporte de pantalla necesita para la inicialización.

[in] DxgkInterface

Puntero a una estructura de DXGKRNL_INTERFACE que contiene punteros a funciones, implementadas por el subsistema del kernel de gráficos de DirectX, a la que puede llamar el controlador de miniporte de pantalla.

[out] NumberOfVideoPresentSources

Puntero a una variable ULONG que recibe el número de orígenes de vídeo presentes admitidos por el adaptador de pantalla. Para obtener más información sobre los orígenes de vídeo presentes, vea Multiple Monitors y Video Present Networks.

[out] NumberOfChildren

Puntero a una variable ULONG que recibe el número total de dispositivos que son elementos secundarios del adaptador de pantalla representados por MiniportDeviceContext. Este recuento debe incluir posibles dispositivos secundarios, así como dispositivos secundarios que están presentes actualmente. Por ejemplo, si acoplar un equipo portátil hará que haya salidas de vídeo adicionales disponibles, esas salidas de vídeo deben contarse independientemente de si el equipo portátil está actualmente acoplado. Para obtener más información sobre los dispositivos secundarios, vea Dispositivos secundarios del adaptador de pantalla.

Valor devuelto

DxgkDdiStartDevice devuelve STATUS_SUCCESS si se realiza correctamente; de lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h.

Comentarios

La función DxgkDdiStartDevice debe realizar las siguientes acciones:

  • Guarde los punteros de función proporcionados por la estructura DXGKRNL_INTERFACE que se pasa al parámetro DxgkInterface . Guarde también el miembro DeviceHandle de la estructura DXGKRNL_INTERFACE ; Necesitará ese identificador para volver a llamar al subsistema del kernel de gráficos de DirectX.
  • Asigne una estructura de DXGK_DEVICE_INFO y llame a DxgkCbGetDeviceInformation para rellenar los miembros de esa estructura, que incluyen la ruta de acceso del Registro, el PDO y una lista de recursos traducidos para el adaptador de pantalla representado por MiniportDeviceContext. Guarde los miembros seleccionados (los que necesitará el controlador de miniporte para mostrar más adelante) de la estructura de DXGK_DEVICE_INFO en el bloque de contexto representado por MiniportDeviceContext.
  • Asigne recursos de memoria al espacio del sistema llamando a la función DxgkCbMapMemory .
  • Inicialice el bloque de contexto representado por MiniportDeviceContext con cualquier estado necesario para preparar el hardware para recibir solicitudes de E/S.
  • Establezca NumberOfVideoPresentSources en el número de orígenes de vídeo presentes admitidos por el adaptador de pantalla representado por MiniportDeviceContext.
  • Establezca NumberOfChildren en el número de dispositivos que son (o podrían convertirse) secundarios del adaptador de pantalla representado por MiniportDeviceContext.
  • Habilite las interrupciones para el adaptador de pantalla representado por MiniportDeviceContext.
A partir del modelo de controlador de pantalla de Windows (WDDM) 1.2, el controlador de minipuerto de pantalla llama a la función DxgkCbAcquirePostDisplayOwnership para obtener la información sobre el modo de visualización que el cargador del firmware y el sistema habían establecido anteriormente. Si DxgkCbAcquirePostDisplayOwnership devuelve con STATUS_SUCCESS, el controlador determina si tiene que reinicializar la pantalla en función de la información del modo de presentación que se devolvió a través del parámetro DisplayInfo . De lo contrario, el controlador no debe suponer que ningún modo de visualización específico está habilitado actualmente en el dispositivo y debe inicializar la pantalla.

La función DxgkDdiStartDevice debe ser paginable.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows Vista.
Plataforma de destino Escritorio
Encabezado dispmprt.h
IRQL PASSIVE_LEVEL

Consulte también

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice