Partilhar via


IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE IOCTL (nfpdev.h)

Um cliente interessado em receber notificações de que uma mensagem foi transmitida enviará a solicitação IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE ao driver de proximidade.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Nenhum

Buffer de saída

Nenhum

Bloco de status

Irp->IoStatus.Status será definido como STATUS_SUCCESS se a solicitação for bem-sucedida.

Caso contrário, status para a condição de erro apropriada como um código NTSTATUS.

Para obter mais informações, consulte valores NTSTATUS.

Observações

  • Um aplicativo cliente enviará esse IOCTL em um loop de controle para o identificador de publicação. Duas transmissões separadas da mesma mensagem resultariam em disparar dois eventos.
  • O cliente deve enviar outro IOCTL sempre que o pendente for concluído. O driver DEVE usar bloqueios apropriados para garantir que o número de conclusões bem-sucedidas desse IOCTL equivale ao número de vezes que a publicação foi transmitida.
  • As seguintes ações são necessárias ao usar este IOCTL:
    • Se esse IOCTL for recebido em um identificador que não tenha sido bem-sucedido anteriormente em um IOCTL_NFP_SET_PAYLOAD, o driver deverá concluí-lo com STATUS_INVALID_DEVICE_STATE.
    • O driver deve manter o equivalente a um contador "CompleteEventImmediately" ( ULONG ou maior) no identificador de arquivo de publicação.
    • Quando este IOCTL é recebido no driver:
      • Se o contador for zero, o driver deverá aguardar o IOCTL para conclusão posterior.
      • Se o contador for maior que zero, o driver DEVERÁ decrementar o contador por um e concluir o IOCTL com STATUS_SUCCESS imediatamente.
    • Se a publicação for transmitida e nenhum IOCTL estiver pendente no momento, o driver deverá incrementar o contador "CompleteEventImmediately" por um.
    • Se a publicação for transmitida enquanto houver um IOCTL pendente disponível, o driver deverá concluir o IRP pendente com STATUS_SUCCESS e NÃO incrementar o contador "CompleteEventImmediately".
    • Se o IOCTL contiver um buffer de entrada ou saída, o driver deverá concluir o IOCTL com STATUS_INVALID_PARAMETER.
    • Se esse IOCTL for recebido enquanto outro estiver atualmente pendente no identificador de publicação, o segundo (ou posterior) DEVERÁ ser concluído com STATUS_INVALID_DEVICE_STATE.
    • O driver DEVE dar suporte a CancelIo do IOCTL pendente.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 8
cabeçalho nfpdev.h

Consulte também

guia de design geral da NFC (comunicação de campo próximo)

Guia de design de proximidade de campo próximo (Toque e Fazer, modelo de provedor NFP, requisitos de driver)