IOCTL_GNSS_DELETE_GEOFENCE IOCTL (gnssdriver.h)

The IOCTL_GNSS_DELETE_GEOFENCE control code is used by the GNSS adapter to delete a previously created geofence.

Applies to GNSS DDI version 2 and later.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

A pointer to a GNSS_GEOFENCE_DELETE_PARAM structure that defines the geofence to be deleted.

Input buffer length

Set to sizeof(GNSS_GEOFENCE_DELETE_PARAM).

Output buffer

Set to NULL.

Output buffer length

Set to 0.

Status block

Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful. Otherwise, Status to the appropriate error condition as a NTSTATUS code.

Remarks

NTSTATUS with the following indications:

  • STATUS_SUCCESS: The driver successfully removed the geofence.

  • STATUS_UNSUCCESSFUL: Failed, the geofence cannot be deleted.

GNSS adapter notes

The GNSS adapter does not expect this call to fail because there is no elegant way to handle the consequence of this failure. On failure, the GNSS adapter will issue the GNSS_ResetGeofencesTracking command and re-add the geofences.

GNSS driver notes

If this is the last geofence, the GNSS driver should stop geofence tracking. If the GNSS engine was unable to track geofences (due to bad signal conditions or other transient errors) prior to the deletion of the last geofence, the monitoring activity should stop.

If the geofence is successfully removed, the driver returns STATUS_SUCCESS. If the geofence cannot be deleted, a failure code, STATUS_UNSUCCESSFUL, is returned. If a failure occurs, the GNSS adapter issues the GNSS_ResetGeofencesTracking command and recreates the desired geofences. If this command deletes the last defined geofence, the driver stops geofence tracking.

Requirements

Requirement Value
Header gnssdriver.h (include Gnssdriver.h)

See also

Creating IOCTL Requests in Drivers

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously