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中定义的错误代码之一。
言论
保留 GPU 虚拟地址范围只能在进程创建期间(即调用 DxgkDdiCreateProcess)且在任何其他时间无效。
在常规过程以及系统设备和上下文所在的系统进程上都可以进行预留。
根页表(页表条目索引 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 |