IOCTL_GNSS_LISTEN_AGNSS IOCTL (gnssdriver.h)

The IOCTL_GNSS_LISTEN_AGNSS control code is used by the GNSS adapter to start listening for AGNSS requests issued by the GNSS driver. This IOCTL effectively provides the GNSS driver with a pending I/O request, the asynchronous resolution of which notifies the adapter, through the overlapped structures GnssEvent member, that the driver requires an AGNSS injection. The GnssEvent member is a GNSS_EVENT structure. The GNSS adapter ensures that this request is always pending and will issue a new request as soon as the pending one is resolved. When the I/O request is resolved the GNSS adapter will issue a corresponding IOCTL_GNSS_INJECT_AGNSS with the appropriate injection data.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

Set to NULL.

Input buffer length

Set to 0.

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

Output

GNSS_EVENT

The EventType must be set to GNSS_Event_RequireAGNSS and the AGNSSRequest member filled in.

GNSS adapter notes

The GNSS adapter ensures that this request is always pending, so that the driver can indicate that it requires AGNSS injection.

When the driver completes the I/O call, the adapter issues another IOCTL to continue waiting for further AGNSS requests.

Depending on the AGNSSRequest.RequestType element, the driver issues IOCTL_GNSS_INJECT_AGNSS with the appropriate injection data.

GNSS driver notes

Whenever the GNSS driver requires assistance data, it completes the I/O operation to seek injection data from the adapter

Requirements

Requirement Value
Header gnssdriver.h

See also

Creating IOCTL Requests in Drivers

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously