IOCTL_GNSS_START_FIXSESSION IOCTL (gnssdriver.h)
Код элемента управления IOCTL_GNSS_START_FIXSESSION используется адаптером GNSS для запуска сеанса исправления.
Основной код
Входной буфер
Указатель на структуру 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