IOCTL_SMARTCARD_TRANSMIT IOCTL (winsmcrd.h)

Die IOCTL_SMARTCARD_TRANSMIT Anforderung überträgt Daten an das eingefügte smarte Karte und empfängt Daten von diesem.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

  • Irp->AssociatedIrp.SystemBuffer Ein Zeiger auf eine SCARD_IO_REQUEST-Struktur gefolgt von den Daten, die an die eingefügte intelligente Karte übertragen werden sollen.

Eingabepufferlänge

  • Parameters.DeviceIoControl.InputBufferLength Enthält die Größe der Struktur plus die Länge der nachgestellten Datenbytes (falls vorhanden). Das dwProtocol-Element muss auf das protokoll festgelegt werden, das zuvor ausgewählt wurde, und das cbPciLength-Element muss auf die Größe der SCARD_IO_REQUEST-Struktur selbst (in der Regel acht Bytes) festgelegt werden. Die Struktur wird für zukünftige Protokolle verwendet. Daten, die an den Karte übermittelt werden, müssen sofort dieser Struktur folgen.

Ausgabepuffer

Bytespuffer enthält das Ergebnis der Übertragung. Der Puffer zeigt auf die SCARD_IO_REQUEST Struktur unmittelbar gefolgt von den empfangenen Daten.

  • Irp->AssociatedIrp.SystemBuffer Empfängt das Ergebnis der Übertragung. Dieser Puffer muss auch mit einer SCARD_IO_REQUEST-Struktur beginnen. Alle Daten, die vom Karte empfangen wurden, müssen unmittelbar nach der Struktur gespeichert werden.

Länge des Ausgabepuffers

  • Parameters.DeviceIoControl.OutputBufferLength Enthält die Länge des Ausgabepuffers.

Statusblock

Irp->IoStatus.Status ist auf einen der folgenden Werte festgelegt.

Wert Bedeutung
STATUS_SUCCESS Die Übertragung war erfolgreich.
STATUS_NO_MEDIA Im Reader wird kein intelligenter Karte erkannt.
STATUS_IO_TIMEOUT Timeout für den Vorgang.
STATUS_INVALID_DEVICE_STATE Das Protokoll in der Headerdatei stimmt nicht mit dem zuvor ausgewählten Smart Karte-Protokoll überein.
STATUS_BUFFER_TOO_SMALL Der Ausgabepuffer ist zu klein für die Rückgabedaten.
STATUS_DEVICE_POWERED_OFF Die Näherungsfunksteuerung ist deaktiviert.

Hinweise

IOCTL_SMARTCARD_TRANSMIT überträgt Daten vom Client an die erkannte intelligente Karte in ISO7816-4-kompatibler APDU. Diese APDUs werden in Bezug auf die PC/SC-Spezifikation interpretiert (Abschnitt 4.3.7 enthält ausführlichere Anforderungen an die Unterstützung für verschiedene kontaktlose NFC-Tagformate). Da das NFP-Feature denselben Treiber mit dem smarten Karte teilt, sollte die Karte direkt nach der Ermittlung verbunden werden, es ist keine explizite Verbindung für "Transmit" erforderlich.

Da der Eingabepuffer und der Ausgabepuffer auf denselben Speicherbereich zeigen, muss der Treiber das Überschreiben der Eingabedaten vermeiden. Verwenden Sie die Smart Karte-Treiberbibliothek, um sicherzustellen, dass die Eingabedaten nicht überschrieben werden.

Anforderungen

Anforderung Wert
Header winsmcrd.h

Weitere Informationen

Entwurfsleitfaden für Nahfeldkommunikation (Near Field Communication, NFC)

Entwurfshandbuch für intelligente Karte