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

La función DxgkCbExcludeAdapterAccess impide todo el acceso al adaptador de pantalla y llama a una rutina de devolución de llamada DxgkProtectedCallback proporcionada mientras se encuentra en este estado protegido.

Sintaxis

DXGKCB_EXCLUDE_ADAPTER_ACCESS DxgkcbExcludeAdapterAccess;

NTSTATUS DxgkcbExcludeAdapterAccess(
  [in] HANDLE DeviceHandle,
  [in] ULONG Attributes,
  [in] DXGKDDI_PROTECTED_CALLBACK DxgkProtectedCallback,
  [in] PVOID ProtectedCallbackContext
)
{...}

Parámetros

[in] DeviceHandle

Identificador que representa un adaptador de pantalla. El controlador de minipuerto de pantalla obtuvo este identificador en el miembro DeviceHandle de la estructura de DXGKRNL_INTERFACE que se pasó a DxgkDdiStartDevice.

[in] Attributes

Valor que especifica las operaciones de memoria de vídeo. Este parámetro puede ser cualquier combinación de los siguientes valores de marca de bits, salvo que DXGK_EXCLUDE_EVICT_ALL y DXGK_EXCLUDE_CALL_SYNCHRONOUS son mutuamente excluyentes. Estos valores se definen en Dispmprt.h.

DXGK_EXCLUDE_EVICT_ALL

Toda la memoria de vídeo del adaptador se copia en la memoria del sistema; se trata de una operación costosa. Si el parámetro Attributes no está establecido en este valor, se suspende el acceso a superficies bloqueadas en la memoria del sistema.

DXGK_EXCLUDE_CALL_SYNCHRONOUS

Ejecuta la rutina de devolución de llamada protegida del controlador DxgkProtectedCallback en el mismo contexto de subproceso que el autor de la llamada. El autor de la llamada debe llamar desde una llamada DDI sincronizada de segundo nivel o de tercer nivel . De lo contrario, se producirá un error en la función DxgkCbExcludeAdapterAccess .

DXGK_EXCLUDE_BRIDGE_ACCESS

Protege el acceso al puerto raíz de PCI Express (PCIe) cuando el controlador necesita acceder al espacio de configuración del puerto raíz. Establezca el parámetro Attributes en este valor antes de llamar a las funciones DxgkCbReadDeviceSpace o DxgkCbWriteDeviceSpace con el parámetro DataType establecido en DXGK_WHICHSPACE_BRIDGE.

[in] DxgkProtectedCallback

La rutina de devolución de llamada que se va a llamar cuando se ha detenido todo el acceso al adaptador.

[in] ProtectedCallbackContext

Puntero al valor que se va a pasar al parámetro ProtectedCallbackContext de la rutina de devolución de llamada DxgkProtectedCallback .

Valor devuelto

DxgkCbExcludeAdapterAccess devuelve STATUS_SUCCESS si se ejecuta correctamente. De lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h.

Comentarios

Las solicitudes de aplicación se bloquearán hasta que esta función vuelva. Mientras se encuentra en este estado de protección, se llama a la rutina de devolución de llamada DxgkProtectedCallback proporcionada en IRQL = PASSIVE_LEVEL.

DxgkCbExcludeAdapterAccess adquiere acceso exclusivo al adaptador para evitar operaciones de E/S relacionadas con gráficos al adaptador de pantalla y a todos los vínculos. Esto inactiva eficazmente la GPU durante toda la duración de la llamada.

Esta función también impide que todos los espacios de configuración de PCI accedan al puerto raíz PCI Express (PCIe) si se especifica DXGK_EXCLUDE_BRIDGE_ACCESS en el parámetro Attributes .

El controlador no debe bloquear la ejecución continua del subproceso de llamada esperando a que se devuelva la rutina de devolución de llamada DxgkProtectedCallback . Por ejemplo, el controlador podría programar un subproceso de trabajo asincrónico para controlar la rutina de devolución de llamada.

Una excepción a este bloqueo de solicitudes de aplicación se produce cuando el controlador de pantalla en modo de usuario ha establecido la marca de campo de bits UseAlternateVA en el miembro Flags de la estructura D3DDDICB_LOCKFLAGS en una llamada a la función pfnLockCb . DxgkCbExcludeAdapterAccess no bloquea este tipo de bloqueo de asignación y la CPU puede acceder al adaptador de pantalla mientras se ejecuta la rutina de devolución de llamada protegida.

Nota Si Se ha establecido UseAlternateVA en una llamada a pfnLockCb, el controlador de miniporte de pantalla no debe llamar a DxgkCbExcludeAdapterAccess.
 

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado dispmprt.h (incluir Dispmprt.h)
IRQL PASSIVE_LEVEL

Consulte también

DxgkProtectedCallback