DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP función de devolución de llamada (dispmprt.h)
Un controlador de miniporte de pantalla en modo kernel (KMD) llama a Dxgkrnl's DxgkCbAcquirePostDisplayOwnership rutina para obtener la información de visualización del dispositivo de visualización de prueba automática (POST) actual o del controlador WDDM que se ejecutó anteriormente.
El controlador debe usar esta información para mostrar para optimizar la solicitud de cambio de modo inicial una vez iniciado el dispositivo para mostrar.
Sintaxis
DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP DxgkcbAcquirePostDisplayOwnership;
NTSTATUS DxgkcbAcquirePostDisplayOwnership(
[in] HANDLE DeviceHandle,
[out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}
Parámetros
[in] DeviceHandle
Identificador que representa un adaptador de pantalla. El KMD obtuvo anteriormente este identificador en el miembro DeviceHandle de la estructura de DXGKRNL_INTERFACE que se pasó a DxgkDdiStartDevice.
[out] DisplayInfo
Puntero a una estructura DXGK_DISPLAY_INFORMATION asignada por el KMD. Si dxgkCbAcquirePostDisplayOwnership devuelve STATUS_SUCCESS, esta estructura contiene información para mostrar del dispositivo de visualización actual que se usa para las operaciones POST.
Valor devuelto
DxgkCbAcquirePostDisplayOwnership devuelve STATUS_SUCCESS si se ejecuta correctamente. De lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h.
Observaciones
Llamar a DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP garantiza que el controlador inicialice correctamente la configuración de visualización en función de la configuración de pantalla actual o más reciente, especialmente después del inicio del sistema, los eventos del complemento del dispositivo o la reanudación de la hibernación.
Formatos de color permitidos
El miembro DisplayInfo->ColorFormat debe incluir una combinación or bit a bit de los dos formatos D3DDDIFORMAT siguientes:
- D3DDDIFMT_X8R8G8B8
- D3DDDIFMT_A8R8G8B8
Si el sistema operativo notifica de nuevo el formato D3DDDIFMT_R8G8B8, el KMD debe omitirlo.
Inicialización de destino presente en vídeo
Es posible que el miembro DisplayInfo->TargetId no se inicialice. En este caso, el identificador del destino de vídeo presente es D3DDDI_ID_UNINITIALIZED. Normalmente, esta situación se produce después de un arranque del sistema.
Del mismo modo, es posible que el miembro DisplayInfo->AcpiId no se inicialice. En este caso, el identificador ACPI AcpiId tiene un valor de cero.
En el caso de una actualización del controlador a controlador, el controlador anterior habrá proporcionado el identificador de destino y el identificador ACPI.
Directrices de implementación
A partir de WDDM 1.2, el KMD debe seguir estas directrices cuando llama a DxgkCbAcquirePostDisplayOwnership:
El punto de entrada de la función
DxgkCbAcquirePostDisplayOwnership forma parte de la estructura . Esta estructura se devuelve al controlador a través del parámetroDXGKRNL_INTERFACE DxgkInterface cuando se llama a la función del controlador.DxgkDdiStartDevice KMD puede llamar opcionalmente a DxgkCbAcquirePostDisplayOwnership. Sin embargo, el sistema operativo podría seguir llamando a la funciónDxgkDdiStopDeviceAndReleasePostDisplayOwnership, incluso si el controlador no llamó previamente a DxgkCbAcquirePostDisplayOwnershipy el controlador debe controlar esa llamada de forma adecuada. Si el del controlador DxgkDdiStopDeviceAndReleasePostDisplayOwnership función no se completa correctamente, el sistema operativo llamará a la función DxgkDdiStopDevice del controlador.
El KMD puede llamar a DxgkCbAcquirePostDisplayOwnership si el dispositivo se inicia en respuesta a un evento Plug and Play (PnP). En este caso, el controlador debe llamar a dxgkCbAcquirePostDisplayOwnership desde el contexto de la llamada a la función DxgkDdiStartDevice.
El KMD puede llamar a DxgkCbAcquirePostDisplayOwnership si el dispositivo reanuda un PowerDeviceD0 estado de energía después de un estado de hibernación. En este caso, el controlador debe llamar a dxgkCbAcquirePostDisplayOwnership desde el contexto de la llamada a la función DxgkDdiSetPowerState.
El KMD solo debe llamar a la función DxgkCbAcquirePostDisplayOwnership si se ejecuta al menos Windows 8. El KMD puede llamar a rtlGetVersion para determinar la versión del sistema operativo.
dxgkCbAcquirePostDisplayOwnership puede devolver una estructura de con el miembro WidthDXGK_DISPLAY_INFORMATION establecido en cero. Este valor indica que el dispositivo de pantalla actual no es capaz de operaciones POST o que el sistema operativo no tiene la información de visualización actual para el dispositivo POST actual.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 8 (WDDM 1.2) |
servidor mínimo admitido | Windows Server 2012 |
de la plataforma de destino de |
Escritorio |
encabezado de |
dispmprt.h (incluya Dispmprt.h) |
irQL | <= APC_LEVEL |