DXGKDDI_RELEASESWIZZLINGRANGE回调函数 (d3dkmddi.h)
DxgkDdiReleaseSwizzlingRange 函数释放 DxgkDdiAcquireSwizzlingRange 函数先前设置的重排范围。
语法
DXGKDDI_RELEASESWIZZLINGRANGE DxgkddiReleaseswizzlingrange;
NTSTATUS DxgkddiReleaseswizzlingrange(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_RELEASESWIZZLINGRANGE pReleaseSwizzlingRange
)
{...}
参数
[in] hAdapter
与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序之前在 DxgkDdiAddDevice 函数的 MiniportDeviceContext 输出参数中向 Microsoft DirectX 图形内核子系统提供了此句柄。
[in] pReleaseSwizzlingRange
指向 DXGKARG_RELEASESWIZZLINGRANGE 结构的指针,该结构包含用于释放重排范围的信息。
返回值
DxgkDdiReleaseSwizzlingRange 返回STATUS_SUCCESS,如果重排范围未成功释放,则返回相应的错误结果。
注解
当指定的分配 (即 pReleaseSwizzlingRange 参数指向的 DXGKARG_RELEASESWIZZLINGRANGE 结构的 hAllocation 成员) 被逐出或销毁时,或者当另一个分配需要 DXGKARG_RELEASESWIZZLINGRANGE 的 RangeId 成员指定的重排范围时,通常会调用 DxgkDdiReleaseSwizzlingRange 函数。
如果指定的分配当前与通过调用 DxgkDdiAcquireSwizzlingRange 函数) (多个重排区域相关联,则显示微型端口驱动程序应仅释放 DXGKARG_RELEASESWIZZLINGRANGE 的 RangeId 成员指定的重排范围。 如果显示微型端口驱动程序释放与分配关联的所有重排范围,则分配中可能会导致随机损坏,因为应用程序当前可能正在使用一个或多个重排范围。
驱动程序必须使用内存映射 I/O (MMIO) 来设置重排范围。 这些重排范围访问不得干扰 GPU (即,在) 调用 DxgkDdiReleaseSwizzlingRange 时,GPU 不得处于空闲状态。
对 DxgkDdiReleaseSwizzlingRange 的所有调用都在它们之间序列化,但不会与任何其他设备驱动程序接口 (DDI) 函数一起序列化。
DxgkDdiReleaseSwizzlingRange 应可分页。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
目标平台 | 桌面 |
标头 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |