DXGKDDI_PROTECTED_CALLBACK回调函数 (dispmprt.h)

DxgkProtectedCallback 回调例程由显示微型端口驱动程序实现,并在阻止对显示适配器的所有访问时,在受保护状态期间由 DxgkCbExcludeAdapterAccess 调用。

语法

DXGKDDI_PROTECTED_CALLBACK DxgkddiProtectedCallback;

void DxgkddiProtectedCallback(
  [in] IN_CONST_PVOID MiniportDeviceContext,
  [in] PVOID ProtectedCallbackContext,
  [in] NTSTATUS ProtectionStatus
)
{...}

参数

[in] MiniportDeviceContext

与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序的 DxgkDdiAddDevice 函数之前向 DirectX 图形内核子系统提供了此句柄。

[in] ProtectedCallbackContext

指向驱动程序定义信息的指针,该信息是在上一次对 DxgkCbExcludeAdapterAccess 的调用中指定的。

[in] ProtectionStatus

显示适配器的受保护状态的状态。 如果STATUS_SUCCESS,则已成功保护适配器免受访问。 失败状态代码指示适配器不受保护。

返回值

备注

只有在停止对显示适配器的所有访问时,才必须调用 DxgkProtectedCallback,如状态参数 ProtectionStatus 所示。

驱动程序必须确保在回调例程期间满足以下条件:

  • 将禁用设备上的所有中断,并处理所有剩余的挂起中断,包括可能已在任何 CPU 上排队但尚未提供服务的任何 DPC。
  • 已刷新所有写入组合内存和任何其他与缓存相关的状态。
  • 发生的任何 ACPI 或 BIOS/SMI 事件都无法访问硬件。
  • 在链接适配器状态配置中的所有适配器之间实现一致性。
  • 适配器(包括其寄存器和显示模式)保持正确的状态,以处理从 DxgkProtectedCallback 例程返回时发生的 DMA 缓冲区。 驱动程序不应更改任何应用程序的可见状态或功能。

要求

要求
最低受支持的客户端 Windows Vista
目标平台 桌面
标头 dispmprt.h (包括 Dispmprt.h)
IRQL PASSIVE_LEVEL

另请参阅

DxgkCbExcludeAdapterAccess