DXGKDDI_START_DEVICE回调函数 (dispmprt.h)

DxgkDdiStartDevice 函数准备一个显示适配器来接收 I/O 请求。

语法

DXGKDDI_START_DEVICE DxgkddiStartDevice;

NTSTATUS DxgkddiStartDevice(
  [in]  IN_CONST_PVOID MiniportDeviceContext,
  [in]  IN_PDXGK_START_INFO DxgkStartInfo,
  [in]  IN_PDXGKRNL_INTERFACE DxgkInterface,
  [out] OUT_PULONG NumberOfVideoPresentSources,
  [out] OUT_PULONG NumberOfChildren
)
{...}

参数

[in] MiniportDeviceContext

与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序的 DxgkDdiAddDevice 函数以前向 DirectX 图形内核子系统提供了此句柄。

[in] DxgkStartInfo

指向 DXGK_START_INFO 结构的指针,其中包含显示微型端口驱动程序初始化所需的信息。

[in] DxgkInterface

指向 DXGKRNL_INTERFACE 结构的指针,该结构包含 DirectX 图形内核子系统实现的函数的指针,显示微型端口驱动程序可以调用。

[out] NumberOfVideoPresentSources

指向 ULONG 变量的指针,该变量接收显示适配器支持的视频演示源数。 有关视频演示源的详细信息,请参阅 多个监视器和视频演示网络

[out] NumberOfChildren

指向 ULONG 变量的指针,该变量接收由 MiniportDeviceContext 表示的显示适配器的子级设备总数。 此计数必须包括潜在的子设备以及当前存在的子设备。 例如,如果对接便携式计算机将提供其他视频输出,则无论便携式计算机当前是否停靠,都必须计算这些视频输出。 有关子设备的详细信息,请参阅 显示适配器的子设备

返回值

DxgkDdiStartDevice 如果成功,则返回 STATUS_SUCCESS ;否则,它将返回 Ntstatus.h 中定义的错误代码之一。

注解

DxgkDdiStartDevice 函数必须执行以下操作:

  • 保存传递给 DxgkInterface 参数的DXGKRNL_INTERFACE结构提供的函数指针。 同时保存DXGKRNL_INTERFACE结构的 DeviceHandle 成员;需要该句柄才能回调 DirectX 图形内核子系统。
  • 分配 DXGK_DEVICE_INFO 结构,并调用 DxgkCbGetDeviceInformation 以填充该结构的成员,其中包括注册表路径、PDO 和 由 MiniportDeviceContext 表示的显示适配器的已翻译资源列表。 保存所选成员 (显示微型端口驱动程序稍后需要在 MiniportDeviceContext 所表示的上下文块中) DXGK_DEVICE_INFO结构。
  • 通过调用 DxgkCbMapMemory 函数将内存资源映射到系统空间。
  • 使用准备硬件以接收 I/O 请求所需的任何状态初始化 MiniportDeviceContext 表示的上下文块。
  • NumberOfVideoPresentSources 设置为 由 MiniportDeviceContext 表示的显示适配器支持的视频演示源数。
  • NumberOfChildren 设置为 (的设备数,或者可能成为 由 MiniportDeviceContext 表示的显示适配器的) 子级。
  • MiniportDeviceContext 表示的显示适配器启用中断。
从 Windows 显示驱动程序模型 (WDDM) 1.2 开始,显示微型端口驱动程序调用 DxgkCbAcquirePostDisplayOwnership 函数,以获取固件和系统加载程序以前设置的显示模式的相关信息。 如果 DxgkCbAcquirePostDisplayOwnership 返回 STATUS_SUCCESS,驱动程序将确定是否必须基于通过 DisplayInfo 参数返回的显示模式信息重新初始化显示。 否则,驱动程序不应假定设备上当前启用了任何特定的显示模式,并且应初始化显示。

应使 DxgkDdiStartDevice 函数可分页。

要求

   
最低受支持的客户端 从 Windows Vista 开始可用。
目标平台 桌面
Header dispmprt.h
IRQL PASSIVE_LEVEL

另请参阅

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice