Compartilhar via


IOCTL_SMARTCARD_SET_PROTOCOL IOCTL (winsmcrd.h)

A solicitação IOCTL_SMARTCARD_SET_PROTOCOL define o protocolo que o driver usará para se comunicar com o cartão inteligente depois que o cartão for detectado (inserido).

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

  • Irp->AssociatedIrp.SystemBuffer contém uma máscara de protocolos aceitáveis para as transmissões a seguir. A máscara pode ser um OR bit a bit dos seguintes valores:

    • SCARD_PROTOCOL_RAW
    • SCARD_PROTOCOL_T0
    • SCARD_PROTOCOL_T1
    • SCARD_PROTOCOL_DEFAULT
    • SCARD_PROTOCOL_OPTIMAL

    Os dois últimos valores são definições de bits adicionais que indicam que o driver deve executar explicitamente a seleção de tipo de protocolo (PTS) com os melhores parâmetros de comunicação possíveis (SCARD_PROTOCOL_OPTIMAL) ou usar o protocolo implícito do cartão com parâmetros padrão (SCARD_PROTOCOL_DEFAULT). Se o cartão der suporte a apenas um protocolo com um conjunto de parâmetros de comunicação, os bits serão ignorados.

  • Parameters.DeviceIoControl.InputBufferLength deve ser definido como sizeof(ULONG). O driver decide qual protocolo sair da máscara usar com o cartão inserido.

Buffer de saída

  • Irp->AssociatedIrp.SystemBuffer O driver armazena o protocolo selecionado aqui (por exemplo, SCARD_PROTOCOL_T1). Apenas um bit fora da máscara pode ser definido.

Comprimento do buffer de saída

  • Parameters.DeviceIoControl.OutputBufferLength Deve ser sizeof(ULONG).

Bloco de status

Irp->IoStatus.Information deve ser definido como sizeof(ULONG).

Irp->IoStatus.Status está definido como um dos valores a seguir.

Valor Significado
STATUS_SUCCESS Um protocolo foi selecionado com êxito.
STATUS_NO_MEDIA Nenhum cartão inteligente é detectado no leitor.
STATUS_IO_TIMEOUT A operação atingiu o tempo limite.
STATUS_NOT_SUPPORTED O cartão inteligente não dá suporte a nenhum dos protocolos solicitados.
STATUS_INVALID_DEVICE_REQUEST A máscara não contém nenhum protocolo conhecido.

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

Requisitos

Requisito Valor
cabeçalho winsmcrd.h

Consulte também

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

guia de design de cartão inteligente