Поделиться через


IOCTL_GNSS_START_FIXSESSION IOCTL (gnssdriver.h)

Код элемента управления IOCTL_GNSS_START_FIXSESSION используется адаптером GNSS для запуска сеанса исправления.

Основной код

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 не запускает запрос на получение исправления, если драйвер не завершит этот вызов и не возвратит состояние успешного выполнения в выходных данных.

Заметки о драйвере GNSS

Если поддержка нескольких сеансов отсутствует и адаптер GNSS отправляет еще один запрос на запуск исправления для уже активного типа исправления, драйвер GNSS должен завершить новый запрос сеанса. Драйвер не должен заменять предыдущий сеанс новыми сведениями о сеансе исправления.

Драйвер GNSS всегда поддерживает несколько сеансов исправления разных типов.

Когда драйвер GNSS принимает параметры сеанса исправления, проверяет их и запускает подсистему GNSS, он немедленно завершает ввод-вывод с кодом успешного возврата. Если сеанс начала исправления не возвращается с кодом успешного выполнения, адаптер GNSS не будет выдавать запрос на получение исправления. Все исправления, полученные для этого конкретного сеанса исправления, должны быть доставлены в адаптер GNSS для последующего ожидающего вызова get fix от адаптера GNSS с тем же идентификатором сеанса. Если исправление становится доступным и адаптер не создает ожидающий вызов исправления, драйвер GNSS должен поставить исправление в очередь до определенного для реализации значения времени ожидания, пока не будет создан ожидающий ввод-вывод, представляющий идентификатор сеанса.

После запуска сеанса исправления он остается активным, если только он не будет явно остановлен адаптером GNSS. Это относится ко всем типам исправлений.

Требования

Требование Значение
Заголовок gnssdriver.h

См. также раздел

Создание запросов IOCTL в драйверах

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously