IOCTL_GNSS_INJECT_AGNSS IOCTL (gnssdriver.h)

The IOCTL_GNSS_INJECT_AGNSS control code is used by the GNSS adapter to inject AGNSS data into the driver. This IOCTL is sent as a result of the driver previously responding to a pending IOCTL_GNSS_LISTEN_AGNSS request.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

A pointer to a GNSS_AGNSS_INJECT structure.

Input buffer length

Set to sizeof(GNSS_AGNSS_INJECT).

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

Input

GNSS_AGNSS_INJECT

Depending on the InjectionType element, the appropriate data element is filled.

Output

NTSTATUS with the following indications:
  • Success: AGNSS data injection was accepted.
  • Failed: AGNSS data injection failed.

GNSS adapter notes

When the GNSS adapter fails to get time for injection, it sets the InjectionStatus element. The driver must check that this element indicates success, before actually using the element data.

In case of failure in gathering injection data, the adapter does not automatically retry. It is up to the driver to retry the same request sequent.

This is a fire-and-forget IOCTL. The GNSS adapter does not handle error even if the driver returns a failure indicating that the injection data was not used.

GNSS driver notes

The GNSS driver completes the I/O request after consuming the injection data.

Requirements

Requirement Value
Header gnssdriver.h

See also

Creating IOCTL Requests in Drivers

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously