DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP función de devolución de llamada (dispmprt.h)
Lo llama el sistema operativo para solicitar al controlador de miniporte de pantalla restablecer el dispositivo de pantalla y liberar la propiedad del dispositivo de prueba automática (POST) actual.
A partir de Windows 8, el sistema operativo llama a esta función durante una operación de detención de Plug and Play (PnP).
Para indicar al sistema operativo que se admite esta función, el controlador debe establecer el miembro NonVGASupport de la estructura de DXGK_DRIVERCAPS cuando se llama a la función DxgkDdiQueryAdapterInfo .
Sintaxis
DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP DxgkddiStopDeviceAndReleasePostDisplayOwnership;
NTSTATUS DxgkddiStopDeviceAndReleasePostDisplayOwnership(
[in] PVOID MiniportDeviceContext,
[in] D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId,
[out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}
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 Microsoft DirectX.
[in] TargetId
Valor de D3DDDI_VIDEO_PRESENT_TARGET_ID que especifica el identificador del destino de vídeo presente en el adaptador de pantalla al que está conectado el dispositivo de visualización. Este identificador podría ser para el destino que se dejó en el estado actual de la red de presentación de vídeo (VidPN) durante la llamada anterior a DxgkDdiCommitVidPn.
Para obtener más información sobre el uso del parámetro TargetId , consulte la sección Comentarios siguiente.
[out] DisplayInfo
Puntero a una estructura DXGK_DISPLAY_INFORMATION asignada por el sistema operativo.
Valor devuelto
Devuelve STATUS_SUCCESS si se realiza correctamente. De lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
Comentarios
Formatos de color permitidos
El controlador de minipuerto de pantalla solo debe notificar un formato de color de 32 bits. Por lo tanto, el miembro DisplayInfo->ColorFormat debe incluir solo uno de los dos formatos siguientes:- D3DDDIFMT_X8R8G8B8
- D3DDDIFMT_A8R8G8B8
Inicialización de destino de presentación de vídeo
El controlador de minipuerto de pantalla debe establecer el miembro DisplayInfo->TargetId en el identificador de destino de la pantalla que permanece activa. Normalmente, este identificador será el valor del parámetro TargetId que el sistema operativo pasó al controlador.Del mismo modo, el controlador de minipuerto de pantalla debe establecer el miembro DisplayInfo-AcpiId> en el identificador ACPI de la pantalla que permanece activa.
Pasos necesarios para mostrar el controlador de minipuerto
El controlador de minipuerto de pantalla debe seguir estos pasos cuando se llama a su función DxgkDdiStopDeviceAndReleasePostDisplayOwnership :- El controlador debe detener el dispositivo de visualización asociado al destino de vídeo presente indicado por el parámetro TargetId , pero debe mantener la pantalla asociada a este destino encendido y visible.
- El controlador debe comprobar la conectividad de la pantalla asociada a este destino. Si el destino no tiene una pantalla conectada, el controlador debe completar la llamada a esta función y devolver el código de error STATUS_NOT_SUPPORTED .
- El controlador debe deshabilitar la señal en todas las demás pantallas conectadas al adaptador de pantalla. Si esto no es posible, el controlador debe intentar colocar una imagen en blanco en todas las demás pantallas. Si esto no es posible, el controlador debe dejar la última imagen en la pantalla sin cambios.
- El controlador debe mantener el modo de visualización actual en el destino indicado y devolver este modo al sistema operativo como parte de esta llamada de función.
- Si el controlador no puede mantener el modo de visualización actual o si el destino no forma parte de la topología activa, el controlador debe seleccionar un destino activo alternativo e intentar mantener la resolución actual de ese destino. Si no es posible, el controlador debe intentar establecer la pantalla en su resolución nativa o en un modo de alta resolución. En este caso, la resolución de pantalla debe establecerse en al menos 800 x 600 píxeles en D3DDDIFMT_R8G8B8 (24 bits por píxel) o D3DDDIFMT_X8R8G8B8 (32 bpp) formatos de color de la enumeración D3DDDIFORMAT .
- Si no hay ningún destino activo, el controlador debe intentar habilitar un destino, preferiblemente el panel interno, si está disponible.
- Si es posible, el controlador debe borrar el búfer de fotogramas actual y deshabilitar el cursor de hardware y todas las superposiciones de visualización.
- Si es posible, el controlador debe establecer la rampa gamma del dispositivo en sus valores predeterminados.
- El controlador debe establecer el búfer de fotogramas actual en un modo lineal. El controlador lo hace mediante el intervalo de swizzle predeterminado o deshabilitando el modo swizzle.
- El controlador debe hacer que el búfer de fotogramas actual sea accesible para la CPU mediante la asignación lineal del búfer de fotogramas actual al espacio de direcciones de la CPU.
- El controlador debe asegurarse de que la visibilidad del destino indicado esté establecida en "habilitado".
Otros requisitos
En los sistemas que admiten unified Extensible Firmware Interface (UEFI), no existe un sistema de entrada/salida (BIOS) vga básico. Para admitir las operaciones de detención de PnP en estos sistemas, Windows Display Driver Model (WDDM) 1.2 y versiones posteriores proporciona compatibilidad con el sistema operativo para restablecer el dispositivo POST y obtener su información de visualización durante una operación de detención de PnP. El sistema operativo lo hace llamando a la función DxgkDdiStopDeviceAndReleasePostDisplayOwnership del controlador display.Una operación de detención de PnP puede producirse en respuesta a solicitudes por procesos como el Administrador de dispositivos o durante un proceso de actualización de controladores.
A partir de Windows 8, el sistema operativo llama a la función DxgkDdiStopDeviceAndReleasePostDisplayOwnership del controlador durante una operación de detención de PnP.
En los sistemas solo UEFI, si el controlador de miniporte de pantalla produce un error en una llamada a esta función, se muestra una pantalla negra y el controlador IHV no está instalado. La solución alternativa a este escenario es que el usuario reinicie el equipo.
Para obtener más información sobre cómo se usa esta función en escenarios PnP, vea Plug and Play (PnP) en WDDM 1.2 y versiones posteriores.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 |
Servidor mínimo compatible | Windows Server 2012 |
Plataforma de destino | Escritorio |
Encabezado | dispmprt.h |
IRQL | PASSIVE_LEVEL |