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
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
Il 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 di 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. |
Osservazioni
IOCTL_SMARTCARD_TRANSMIT trasmette i dati dal client alla smart card rilevata nell ISO7816-4 APDU conforme. 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 senza contatto NFC). 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 dei driver di smart card per assicurarsi che i dati di input non vengano sovrascritti.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | winsmcrd.h |