IOCTL_SMARTCARD_IS_ABSENT IOCTL (winsmcrd.h)

O código de controle IOCTL_SMARTCARD_IS_ABSENT retorna imediatamente com STATUS_SUCCESS se nenhum cartão inteligente for detectado no momento. Se forem detectados cartões inteligentes, o IOCTL precisará ser pendente pelo driver e ele precisará concluir a solicitação em cartão partida. Fechar o identificador de arquivo cancela automaticamente o 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 é retornado quando a ID do atributo é SCARD_ATTR_DEVICE_IN_USE.
STATUS_DEVICE_BUSY Esse código será retornado se a operação já estiver aguardando o evento ausente.
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 no estado de energia D0.

Requisitos

Requisito Valor
Cabeçalho winsmcrd.h

Confira também

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

Guia de design de cartão inteligente