IOCTL_GNSS_START_FIXSESSION IOCTL (gnssdriver.h)

GNSS 适配器使用 IOCTL_GNSS_START_FIXSESSION 控制代码来启动修复会话。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

指向 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

另请参阅

在驱动程序中创建 IOCTL 请求

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously