IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE IOCTL(nfpdev.h)

메시지가 전송되었다는 알림을 받는 데 관심이 있는 클라이언트는 IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE 요청을 근접 드라이버로 보냅니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

없음

출력 버퍼

없음

상태 블록

요청이 성공하면 Irp-IoStatus.Status>가 STATUS_SUCCESS 설정됩니다.

그렇지 않으면 NTSTATUS 코드로 적절한 오류 조건에 대한 상태입니다.

자세한 내용은 NTSTATUS 값을 참조하세요.

설명

  • 클라이언트 애플리케이션은 컨트롤 루프에서 이 IOCTL을 게시 핸들로 보냅니다. 동일한 메시지의 두 개의 별도 전송으로 인해 두 개의 이벤트가 트리거됩니다.
  • 클라이언트는 보류 중인 IOCTL이 완료될 때마다 다른 IOCTL을 보내야 합니다. 드라이버는 적절한 잠금을 사용하여 이 IOCTL의 성공적인 완료 횟수가 게시가 전송된 횟수와 동일시되도록 해야 합니다.
  • 이 IOCTL을 사용하는 경우 다음 작업이 필요합니다.
    • 이전에 IOCTL_NFP_SET_PAYLOAD 성공하지 못한 핸들에서 이 IOCTL을 받은 경우 드라이버는 STATUS_INVALID_DEVICE_STATE 완료해야 합니다.
    • 드라이버는 게시 파일 핸들에서 "CompleteEventImmediately" 카운터(ULONG 이상)와 동등한 값을 유지해야 합니다.
    • 드라이버에서 이 IOCTL이 수신되는 경우:
      • 카운터가 0이면 드라이버는 나중에 완료하기 위해 IOCTL을 보류해야 합니다.
      • 카운터가 0보다 큰 경우 드라이버는 카운터를 1씩 감소시키고 즉시 STATUS_SUCCESS 사용하여 IOCTL을 완료해야 합니다.
    • 게시가 전송되고 IOCTL이 현재 보류되지 않은 경우 드라이버는 "CompleteEventImmediately" 카운터를 하나씩 증가시켜야 합니다.
    • 사용 가능한 보류 중인 IOCTL이 있는 동안 게시가 전송되는 경우 드라이버는 보류 중인 IRP를 STATUS_SUCCESS 완료하고 "CompleteEventImmediately" 카운터를 증가시키지 않아야 합니다.
    • IOCTL에 입력 또는 출력 버퍼가 포함된 경우 드라이버는 STATUS_INVALID_PARAMETER 사용하여 IOCTL을 완료해야 합니다.
    • 다른 IOCTL이 현재 게시 핸들에 보류 중인 동안 이 IOCTL을 수신하는 경우 두 번째 IOCTL(이상)은 STATUS_INVALID_DEVICE_STATE 완료해야 합니다.
    • 드라이버는 보류 중인 IOCTL의 CancelIo를 지원해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
머리글 nfpdev.h

추가 정보

NFC(근거리 통신) 전체 디자인 가이드

근거리 근접 설계 가이드(탭 및 수행, NFP 공급자 모델, 드라이버 요구 사항)