IOCTL_GNSS_START_FIXSESSION IOCTL (gnssdriver.h)
GNSS 适配器使用 IOCTL_GNSS_START_FIXSESSION 控制代码来启动修复会话。
主要代码
输入缓冲区
指向 GNSS_FIXSESSION_PARAM 结构的指针。
输入缓冲区长度
将 设置为 sizeof (GNSS_FIXSESSION_PARAM) 。
输出缓冲区
设置为 NULL。
输出缓冲区长度
设置为 0。
状态块
Irp->如果请求成功,IoStatus.Status 设置为 STATUS_SUCCESS。 否则, 状态 为相应的错误条件作为 NTSTATUS 代码。
注解
驱动程序设置 NTSTATUS 值以指示以下结果之一。
- 修复会话已成功启动。
- 同一类型的修复会话已处于活动状态,驱动程序不支持多个会话。
GNSS 适配器说明
如果不存在多会话支持,GNSS 适配器可确保正确多路复用同一修复类型的多个会话,以便 GNSS 驱动程序只看到一个给定类型的修补程序的会话。 GNSS 适配器可以通过 IOCTL_GNSS_MODIFY_FIXSESSION 调用修改活动修复会话的修复会话参数。除非驱动程序完成此调用并在输出中返回成功状态,否则 GNSS 适配器不会启动 get 修复请求。
GNSS 驱动程序说明
如果不存在多会话支持,并且 GNSS 适配器为已处于活动状态的修复类型发送另一个启动修复请求,则 GNSS 驱动程序必须使新会话请求失败。 驱动程序不应将以前的会话替换为新的修复会话详细信息。GNSS 驱动程序始终支持不同修补程序类型的多个修复会话。
GNSS 驱动程序接受修复会话参数、对其进行验证并启动 GNSS 引擎后,它会立即使用成功返回代码完成 I/O。 除非启动修复会话返回并返回成功代码,否则 GNSS 适配器不会发出获取修复请求。 对于此特定修复会话收到的所有修补程序,必须针对来自具有相同会话 ID 的 GNSS 适配器的后续挂起获取修补程序调用传递到 GNSS 适配器。 如果修补程序可用,并且适配器未创建挂起的获取修补程序调用,则需要 GNSS 驱动程序将修复排到特定于实现的超时值,直到创建表示会话 ID 的挂起 I/O 为止。
修复会话启动后,除非 GNSS 适配器显式停止修复会话,否则该会话将保持活动状态。 这适用于所有修补程序类型。
要求
要求 | 值 |
---|---|
Header | gnssdriver.h |
另请参阅
WdfIoTargetSendInternalIoctlOthersSynchronously