Compartilhar via


IOCTL_SMARTCARD_IS_PRESENT IOCTL (winsmcrd.h)

O código de controle IOCTL_SMARTCARD_IS_PRESENT detecta se um cartão inteligente é detectado no momento. Se um cartão estiver presente, ele retornará imediatamente com STATUS_SUCCESS. Se nenhum cartão inteligente for detectado, ele assinará o evento de chegada de cartão inteligente e será mantido pendente. Fechar o identificador de arquivo cancela a assinatura do evento.

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. Os códigos de erro possíveis são:

Código de retorno Descrição
STATUS_PENDING Esse código será retornado se a operação estiver aguardando que o cartão inteligente se aproxime do campo de rádio.
STATUS_DEVICE_BUSY Esse código será retornado se a operação já estiver aguardando o evento atual.
STATUS_INVALID_DEVICE_STATE Esse código será retornado se o dispositivo não puder aceitar a solicitação.
STATUS_INVALID_PARAMETER Esse código é retornado quando os buffers de entrada ou saída são inválidos.
STATUS_DEVICE_POWERED_OFF Esse código é retornado quando o controle de rádio de proximidade está desativado.

Comentários

As seguintes ações são necessárias ao usar este IOCTL:

  • O driver deve dar suporte a CancelIo nesse IOCTL pendente.

  • É uma solicitação gerenciada por energia. O IOCTL pendente manterá o driver em um estado de energia D0.
  • O driver deve retornar STATUS_SUCCESS somente para o tipo com suporte.

Requisitos

Requisito Valor
Cabeçalho winsmcrd.h

Confira também

Guia de design de NFC (comunicação a curta distância)

Guia de design de cartão inteligente