PFNKSDEVICEPNPSTART 回调函数 (ks.h)

为指定设备发送IRP_MN_START_DEVICE请求时,将调用 AVStream 微型驱动程序的 AVStrMiniDeviceStart 例程。

语法

PFNKSDEVICEPNPSTART Pfnksdevicepnpstart;

NTSTATUS Pfnksdevicepnpstart(
  [in]           PKSDEVICE Device,
  [in]           PIRP Irp,
  [in, optional] PCM_RESOURCE_LIST TranslatedResourceList,
  [in, optional] PCM_RESOURCE_LIST UntranslatedResourceList
)
{...}

参数

[in] Device

指向 KSDEVICE 结构的指针,该结构描述要启动的设备。

[in] Irp

指向收到的 IRP_MN_START_DEVICE 的指针。

[in, optional] TranslatedResourceList

指向包含从 Irp 提取的已翻译资源列表的CM_RESOURCE_LIST 结构的指针。 如果设备没有分配的资源,则等于 NULL。 可选。

[in, optional] UntranslatedResourceList

指向包含从 Irp 提取的未翻译资源列表的CM_RESOURCE_LIST 结构的指针。 如果此参数列表的 KSDEVICE 成员没有分配的资源,则等于 NULL。 可选。

返回值

应返回STATUS_SUCCESS或尝试执行操作时返回的错误代码。 如果例程返回成功的状态代码,则保证启动成功。 请勿返回STATUS_PENDING。

注解

在其KSDEVICE_DISPATCH结构的 Start 成员中指定此例程的地址。

通常,此例程由必须评估已分配资源的微型驱动程序使用。 为了方便微型驱动程序,从 Irp 中提取资源列表。 微型驱动程序可以分析资源列表以查找分配给设备的中断,以及内存资源的物理地址。

微型驱动程序可以使用此例程来分配上下文信息以与 AVStream 设备相关联。 (这类似于流类下的微型驱动程序,使用设备扩展来存储上下文信息。)

请注意,STATUS_PENDING不是此函数的合法返回代码。 若要在 AVStream 完成启动操作(例如启用设备接口)之前在工作线程的上下文中执行操作,请使用启动后调度。 请参阅 AVStrMiniDevicePostStart

此例程是可选的。

要求

要求
最低受支持的客户端 在 Microsoft Windows XP 及更高版本的操作系统以及 DirectX 8.0 及更高版本的 DirectX 中可用。
目标平台 桌面
标头 ks.h (包括 Ks.h)

另请参阅

CM_RESOURCE_LIST

KSDEVICE_DISPATCH