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

另请参阅

DXGKARG_RELEASESWIZZLINGRANGE

DxgkDdiAcquireSwizzlingRange

DxgkDdiAddDevice