Compartir a través de


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 un DxgkProtectedCallback proporcionado rutina de devolución de llamada 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, excepto 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 del controlador dxgkProtectedCallback protegida en el mismo contexto de subproceso que el autor de la llamada. El autor de la llamada debe llamar desde un de segundo nivel o tercera llamada DDI sincronizada. 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 DxgkCbReadDeviceSpace o DxgkCbWriteDeviceSpace funciones 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 del DxgkProtectedCallback rutina de devolución de llamada.

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.

Observaciones

Las solicitudes de aplicación se bloquearán hasta que se devuelva esta función. 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 que realiza la llamada esperando a que la DxgkProtectedCallback rutina de devolución de llamada que se devuelva. 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 la flags miembro de la estructura de 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 miniportar para mostrar no debe llamar a DxgkCbExcludeAdapterAccess.
 

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista
de la plataforma de destino de Escritorio
encabezado de dispmprt.h (incluya Dispmprt.h)
irQL PASSIVE_LEVEL

Consulte también

dxgkProtectedCallback