IOCTL_GNSS_LISTEN_GEOFENCE_ALERT IOCTL(gnssdriver.h)

IOCTL_GNSS_LISTEN_GEOFENCE_ALERT 제어 코드는 드라이버에서 지오펜스 경고 수신 대기를 시작하는 데 사용됩니다.

참고 GNSS DDI 버전 2 이상에 적용됩니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

NULL로 설정됨.

입력 버퍼 길이

0으로 설정합니다.

출력 버퍼

GNSS_EVENT 구조체에 대한 포인터입니다.

EventType은 GNSS_Event_GeofenceAlertData 설정해야 하며 GeofenceAlertData 멤버가 채워져 있어야 합니다.

출력 버퍼 길이

sizeof(GNSS_EVENT)로 설정합니다.

상태 블록

요청이 성공하면 Irp->IoStatus.Status가 STATUS_SUCCESS 설정됩니다. 그렇지 않으면 NTSTATUS 코드로 적절한 오류 조건에 대한 상태입니다.

설명

GNSS 어댑터 노트

GNSS 어댑터는 항상 보류 중인 요청을 유지합니다.

드라이버가 I/O 호출을 완료하면 어댑터는 다른 IOCTL을 발급하여 다음 지오펜스 경고를 수신합니다.

GNSS 어댑터는 지오펜스가 없거나 지오펜스 추적 작업이 GNSS_ResetGeofencesTracking 드라이버 명령을 통해 다시 초기화된 경우에도 이 IOCTL을 보류 상태로 유지할 수 있습니다. GNSS 드라이버는 이를 오류 조건으로 취급해서는 안 됩니다.

GNSS 드라이버 노트

GNSS 드라이버는 GNSS 엔진에서 지오펜스 경고 알림을 받을 때마다 I/O 작업을 완료합니다.

GNSS 어댑터가 이전 경고를 처리하는 중이고 아직 보류 중인 IOCTL을 발급하지 않은 경우 GNSS 드라이버는 경고를 로컬로 큐에 대기시키고 어댑터가 이 IOCTL을 보낼 때마다 큐를 제거합니다.

지오펜스가 처음으로 추가되면 초기 상태(HLOS에서 볼 수 있음)가 매개 변수로 전달됩니다. GNSS 엔진은 초기 상태에서 상태가 변경된 경우에만 첫 번째 경고를 발생시켜야 합니다. 이는 드라이버 수준에서 중복 경고를 필터링하는 GNSS 드라이버와 달리 GNSS 엔진 자체에 의해 기본적으로 처리되어야 하므로 초기화 시 불필요한 애플리케이션 프로세서 절전 모드 해제의 목적이 무효화됩니다.

이 IO 요청은 GNSS 엔진에서 경고를 받을 때까지 보류 상태로 유지됩니다. 드라이버가 IO 호출을 완료하면 GNSS 어댑터가 다른 IOCTL을 발급하여 다음 지오펜스 경고를 받습니다. 이 IOCTL은 지오펜스가 없거나 추적 작업이 GNSS_ResetGeofencesTracking 명령을 통해 다시 초기화된 경우에도 보류 상태로 유지됩니다. 보류 중인 새 IOCTL이 발급되지 않았고 다른 지오펜스 경고가 수신되면 보류 중인 다음 IO 요청이 수신될 때까지 로컬로 큐에 대기됩니다.

요구 사항

   
헤더 gnssdriver.h

참고 항목

드라이버에서 IOCTL 요청 만들기

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously