DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE回调函数 (d3dkmddi.h)
内核模式显示微型端口驱动程序可以调用 DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE ,以在创建进程期间 (GPU) 虚拟地址范围保留图形处理单元。
语法
DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE DxgkcbReservegpuvirtualaddressrange;
NTSTATUS DxgkcbReservegpuvirtualaddressrange(
[in] IN_CONST_HANDLE hAdapter,
[in/out] INOUT_PDXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE pArgs
)
{...}
参数
[in] hAdapter
显示适配器的句柄。
[in/out] pArgs
描述操作 的DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE 结构。
返回值
如果成功,DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE 将返回 STATUS_SUCCESS 。 否则,它将返回 Ntstatus.h 中定义的错误代码之一。
注解
仅在进程创建 (即在调用 DxgkDdiCreateProcess) 期间才能保留 GPU 虚拟地址范围,并且在其他任何时间都无效。
可以在常规进程以及系统设备和上下文所在的系统进程中进行预留。
(页表条目索引 0) 根页表中的第一个条目将始终由视频内存管理器初始化为无效,并且驱动程序预留将从页表条目索引 1 开始。 驱动程序预留必须始终是虚拟地址空间的精确倍数(由叶页表覆盖),因为特定的页表条目不能在视频内存管理器和内核模式驱动程序之间共享。 驱动程序保留的页表条目将被视频内存管理器初始化为 无效 ,并可能被驱动程序覆盖以引用由驱动程序管理的内部分配页表。 每次相应页表变为驻留状态时,视频内存管理器会将保留页表条目更新为无效。
DXGKCB_XXX 函数由 Dxgkrnl 实现。 若要使用此回调函数,请设置 DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE 的相应成员,然后通过 DXGKRNL_INTERFACE调用 DxgkCbReserveGpuVirtualAddressRange。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 (WDDM 2.0) |
最低受支持的服务器 | Windows Server 2016 |
目标平台 | 桌面 |
标头 | d3dkmddi.h (包括 Dispmprt.h) |
IRQL | <= PASSIVE_LEVEL |