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 |