Condividi tramite


IOCTL_SMARTCARD_TRANSMIT IOCTL (winsmcrd.h)

La richiesta di IOCTL_SMARTCARD_TRANSMIT trasmette i dati a e riceve i dati dalla smart card inserita.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

  • Irp->AssociatedIrp.SystemBuffer Puntatore a una struttura SCARD_IO_REQUEST seguita dai dati da trasmettere alla smart card inserita.

Lunghezza del buffer di input

  • Parameters.DeviceIoControl.InputBufferLength Contiene le dimensioni della struttura più la lunghezza dei byte di dati finali (se presenti). Il membro dwProtocol deve essere impostato sul protocollo selezionato in precedenza e il membro cbPciLength deve essere impostato sulle dimensioni della struttura SCARD_IO_REQUEST stessa (in genere otto byte). La struttura viene utilizzata per i protocolli futuri. I dati che verranno trasmessi alla scheda devono seguire immediatamente questa struttura.

Buffer di output

Buffer byte contiene il risultato della trasmissione. Il buffer punta alla struttura SCARD_IO_REQUEST immediatamente seguita dai dati ricevuti.

  • Irp->AssociatedIrp.SystemBuffer riceve il risultato della trasmissione. Questo buffer deve iniziare anche con una struttura SCARD_IO_REQUEST . Tutti i dati ricevuti dalla scheda devono essere archiviati immediatamente dopo la struttura.

Lunghezza del buffer di output

  • Parameters.DeviceIoControl.OutputBufferLength Contiene la lunghezza del buffer di output.

Blocco dello stato

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

Valore Significato
STATUS_SUCCESS La trasmissione ha avuto esito positivo.
STATUS_NO_MEDIA Non viene rilevata alcuna smart card nel lettore.
STATUS_IO_TIMEOUT Timeout dell'operazione.
STATUS_INVALID_DEVICE_STATE Il protocollo nel file di intestazione non corrisponde al protocollo della smart card selezionato in precedenza.
STATUS_BUFFER_TOO_SMALL Il buffer di output è troppo piccolo per i dati restituiti.
STATUS_DEVICE_POWERED_OFF Il controllo radio di prossimità è disattivato.

Commenti

IOCTL_SMARTCARD_TRANSMIT trasmette i dati dal client alla smart card rilevata nell'APDU conforme ISO7816-4. Queste APDU vengono interpretate in relazione alla specifica PC/SC (la sezione 4.3.7 ha requisiti più dettagliati sul supporto per diversi formati di tag NFC contactless). Poiché la funzionalità NFP condivide lo stesso driver con la smart card, la scheda deve essere connessa subito dopo l'individuazione, non è necessaria alcuna connessione esplicita per la trasmissione.

Poiché il buffer di input e il buffer di output puntano alla stessa area di memoria, il driver deve evitare di sovrascrivere i dati di input. Usare la libreria di driver della smart card per assicurarsi che i dati di input non vengano sovrascritti.

Requisiti

Requisito Valore
Intestazione winsmcrd.h

Vedi anche

Guida alla progettazione NFC (Near Field Communication)

Guida alla progettazione di smart card