IOCTL_GNSS_LISTEN_GEOFENCE_ALERT IOCTL(gnssdriver.h)
IOCTL_GNSS_LISTEN_GEOFENCE_ALERT 제어 코드는 드라이버에서 지오펜스 경고 수신 대기를 시작하는 데 사용됩니다.
주 코드
입력 버퍼
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 |
참고 항목
WdfIoTargetSendInternalIoctlOthersSynchronously
피드백
다음에 대한 사용자 의견 제출 및 보기