DXGKDDI_ADD_DEVICE回调函数 (dispmprt.h)
DxgkDdiAddDevice 函数为显示适配器创建上下文块,并返回表示显示适配器的句柄。
语法
DXGKDDI_ADD_DEVICE DxgkddiAddDevice;
NTSTATUS DxgkddiAddDevice(
[in] IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
[out] OUT_PPVOID MiniportDeviceContext
)
{...}
参数
[in] PhysicalDeviceObject
指向物理设备对象的指针 (标识显示适配器的 PDO) 。
[out] MiniportDeviceContext
指向一个变量的指针,该变量接收由显示微型端口驱动程序创建的句柄,该句柄将表示 由 PhysicalDeviceObject 标识的显示适配器。 显示微型端口驱动程序可以在此参数中返回 NULL,以指示它不支持 由 PhysicalDeviceObject 标识的显示适配器。
返回值
DxgkDdiAddDevice 如果成功,则返回STATUS_SUCCESS;否则,它将返回 Ntstatus.h 中定义的错误代码之一。
注解
DxgkDdiAddDevice 函数分配与 PhysicalDeviceObject 标识的显示适配器关联的专用上下文块。 可以将 MiniportDeviceContext 中返回的句柄视为显示适配器的句柄或与显示适配器关联的上下文块的句柄。 (Dxgkrnl.sys) 的 DirectX 图形内核子系统将在后续调用显示微型端口驱动程序时提供句柄。 以下列表提供了 Dxgkrnl.sys 将句柄传递给显示微型端口驱动程序实现的函数的各种组件的示例。
显示端口驱动程序在 DxgkDdiStartDevice 函数的 MiniportDeviceContext 参数中提供句柄。
VidPN 管理器在 DxgkDdiIsSupportedVidPn 函数的 hAdapter 参数中提供句柄。
DirectX 图形核心在 DxgkDdiQueryAdapterInfo 函数的 hAdapter 参数中提供句柄。
不要因为句柄有时名为 MiniportDeviceContext 而有时名为 hAdapter 这一事实感到困惑。 此外,不要将此句柄与传递给某些显示微型端口驱动程序函数的 hDevice 参数混淆。
以串行方式一次为一台设备调用 DxgkDdiAddDevice。 其行为与 WDM 内核模式驱动程序的标准 DRIVER_ADD_DEVICE 回调相同。
某些显示适配器卡具有两个或多个 PCI 函数,这些函数充当显示适配器。 例如,某些旧卡通过为每个视图提供单独的 PCI 函数来实现多个视图。 显示端口驱动程序为每个 PCI 函数调用 DxgkDdiAddDevice 一次,此时显示微型端口驱动程序可以通过将 MiniportDeviceContext 设置为非零值) 来指示它支持 PCI 函数 (,或者它不支持 PCI 函数 (通过将 MiniportDeviceContext 设置为 NULL) 。 若要获取有关特定 PCI 函数的信息,显示微型端口驱动程序可以将 PhysicalDeviceObject 传递给 IoGetDeviceProperty。
在 DxgkDdiRemoveDevice 中,释放上下文块和 在 DxgkDdiAddDevice 期间分配的任何其他资源。
应使 DxgkDdiAddDevice 函数可分页。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
目标平台 | 桌面 |
标头 | dispmprt.h |
IRQL | PASSIVE_LEVEL |