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) |