IOCTL_GNSS_START_FIXSESSION IOCTL(gnssdriver.h)

IOCTL_GNSS_START_FIXSESSION 제어 코드는 GNSS 어댑터에서 수정 세션을 시작하는 데 사용됩니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

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

입력 버퍼 길이

sizeof(GNSS_FIXSESSION_PARAM)로 설정합니다.

출력 버퍼

NULL로 설정됨.

출력 버퍼 길이

0으로 설정합니다.

상태 블록

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

설명

드라이버는 다음 결과 중 하나를 나타내도록 NTSTATUS 값을 설정합니다.

  • 수정 세션이 성공적으로 시작되었습니다.
  • 동일한 유형의 수정 세션이 이미 활성 상태이며 드라이버는 여러 세션을 지원하지 않습니다.

GNSS 어댑터 참고 사항

다중 세션 지원이 없는 경우 GNSS 어댑터는 동일한 수정 유형의 여러 세션이 제대로 멀티플렉싱되도록 하여 GNSS 드라이버가 지정된 수정 유형의 세션을 하나만 볼 수 있도록 합니다. GNSS 어댑터는 IOCTL_GNSS_MODIFY_FIXSESSION 호출을 통해 활성 수정 세션의 수정 세션 매개 변수를 수정할 수 있습니다.

드라이버가 이 호출을 완료하고 출력에서 성공 상태 반환하지 않는 한 GNSS 어댑터는 get fix 요청을 시작하지 않습니다.

GNSS 드라이버 노트

다중 세션 지원이 없는 경우 GNSS 어댑터가 이미 활성 상태인 수정 유형에 대한 또 다른 시작 수정 요청을 보내는 경우 GNSS 드라이버는 새 세션 요청에 실패해야 합니다. 드라이버는 이전 세션을 새 수정 세션 세부 정보로 바꾸면 안 됩니다.

다양한 수정 유형의 여러 수정 세션은 항상 GNSS 드라이버에서 지원됩니다.

GNSS 드라이버가 수정 세션 매개 변수를 수락하고, 유효성을 검사하고, GNSS 엔진을 시작하면 성공 반환 코드로 I/O를 즉시 완료합니다. 시작 수정 세션이 성공 코드와 함께 반환되지 않는 한 GNSS 어댑터는 get fix 요청을 실행하지 않습니다. 이 특정 수정 세션에 대해 받은 모든 수정 사항은 세션 ID가 동일한 GNSS 어댑터에서 후속 보류 중인 get fix 호출에 대해 GNSS 어댑터에 전달되어야 합니다. 수정을 사용할 수 있게 되고 어댑터에서 보류 중인 get fix 호출이 생성되지 않는 경우 GNSS 드라이버는 세션 ID를 나타내는 보류 중인 I/O가 만들어질 때까지 구현별 시간 제한 값까지 수정을 큐에 대기해야 합니다.

수정 세션이 시작되면 수정 세션이 GNSS 어댑터에 의해 명시적으로 중지되지 않는 한 활성 상태로 유지됩니다. 이는 모든 수정 유형에 적용됩니다.

요구 사항

요구 사항
헤더 gnssdriver.h

추가 정보

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

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously