Condividi tramite


IOCTL_SMARTCARD_SET_PROTOCOL IOCTL (winsmcrd.h)

La richiesta di IOCTL_SMARTCARD_SET_PROTOCOL imposta il protocollo che il driver userà per comunicare con la smart card dopo che la scheda viene rilevata (inserita).

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

  • Irp->AssociatedIrp.SystemBuffer Contiene una maschera di protocolli accettabili per le trasmissioni seguenti. La maschera può essere un OR bit per bit dei valori seguenti:

    • SCARD_PROTOCOL_RAW
    • SCARD_PROTOCOL_T0
    • SCARD_PROTOCOL_T1
    • SCARD_PROTOCOL_DEFAULT
    • SCARD_PROTOCOL_OPTIMAL

    Gli ultimi due valori sono definizioni di bit aggiuntive che indicano che il driver deve eseguire in modo esplicito la selezione del tipo di protocollo (PTS) con i parametri di comunicazione migliori possibili (SCARD_PROTOCOL_OPTIMAL) o usare il protocollo implicito della scheda con parametri standard (SCARD_PROTOCOL_DEFAULT). Se la scheda supporta un solo protocollo con un set di parametri di comunicazione, i bit vengono ignorati.

  • Parameters.DeviceIoControl.InputBufferLength Deve essere impostato su sizeof(ULONG). Il driver decide quale protocollo fuori dalla maschera utilizzare con la scheda inserita.

Buffer di output

  • Irp->AssociatedIrp.SystemBuffer Il driver archivia il protocollo selezionato qui (ad esempio, SCARD_PROTOCOL_T1). È possibile impostare un solo bit fuori dalla maschera.

Lunghezza del buffer di output

  • Parameters.DeviceIoControl.OutputBufferLength deve essere sizeof(ULONG).

Blocco di stato

Irp->IoStatus.Information deve essere impostato su sizeof(ULONG).

Irp->IoStatus.Status è impostato su uno dei valori seguenti.

Valore Significato
STATUS_SUCCESS È stato selezionato correttamente un protocollo.
STATUS_NO_MEDIA Non viene rilevata alcuna smart card nel lettore.
STATUS_IO_TIMEOUT Timeout dell'operazione.
STATUS_NOT_SUPPORTED La smart card non supporta alcun protocollo richiesto.
STATUS_INVALID_DEVICE_REQUEST La maschera non contiene alcun protocollo noto.

Per altre informazioni, vedere valori NTSTATUS.

Fabbisogno

Requisito Valore
intestazione winsmcrd.h

Vedere anche

guida alla progettazione NFC (Near Field Communication)

guida alla progettazione di smart card