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


IOCTL_GNSS_DELETE_GEOFENCE IOCTL (gnssdriver.h)

Код элемента управления IOCTL_GNSS_DELETE_GEOFENCE используется адаптером GNSS для удаления ранее созданной геозоны.

Применяется к GNSS DDI версии 2 и более поздних.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Указатель на структуру GNSS_GEOFENCE_DELETE_PARAM , которая определяет удаляемую геозону.

Длина входного буфера

Задайте для параметра sizeof(GNSS_GEOFENCE_DELETE_PARAM).

Выходной буфер

Задайте значение NULL.

Длина выходного буфера

Задайте значение 0.

Блок состояния

Irp->IoStatus.Status имеет значение STATUS_SUCCESS, если запрос выполнен успешно. В противном случае — Состояние до соответствующего условия ошибки в виде кода NTSTATUS .

Комментарии

NTSTATUS со следующими признаками:

  • STATUS_SUCCESS. Драйвер успешно удалил геозону.

  • STATUS_UNSUCCESSFUL: не удалось удалить геозону.

Заметки об адаптере GNSS

Адаптер GNSS не ожидает, что этот вызов завершится ошибкой, так как нет элегантного способа обработки последствий этого сбоя. В случае сбоя адаптер GNSS выполнит команду GNSS_ResetGeofencesTracking и повторно добавит геозоны.

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

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

Если геозона успешно удалена, драйвер возвращает STATUS_SUCCESS. Если геозона не может быть удалена, возвращается код сбоя, STATUS_UNSUCCESSFUL. В случае сбоя адаптер GNSS выполняет команду GNSS_ResetGeofencesTracking и повторно создает нужные геозоны. Если эта команда удаляет последнюю определенную геозону, драйвер останавливает отслеживание геозоны.

Требования

Требование Значение
Заголовок gnssdriver.h (включая Gnssdriver.h)

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

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

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously