Freigeben über


IOCTL_SMARTCARD_SET_PROTOCOL IOCTL (winsmcrd.h)

Die IOCTL_SMARTCARD_SET_PROTOCOL Anforderung legt das Protokoll fest, das der Treiber für die Kommunikation mit der Smartcard verwendet, nachdem die Karte erkannt (eingefügt) wurde.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

  • Irp->AssociatedIrp.SystemBuffer Enthält eine Maske von Protokollen, die für die folgenden Übertragungen akzeptabel sind. Die Maske kann ein bitweiser ODER der folgenden Werte sein:

    • SCARD_PROTOCOL_RAW
    • SCARD_PROTOCOL_T0
    • SCARD_PROTOCOL_T1
    • SCARD_PROTOCOL_DEFAULT
    • SCARD_PROTOCOL_OPTIMAL

    Die letzten beiden Werte sind zusätzliche Bitdefinitionen, die angeben, dass der Treiber entweder explizit die Protokolltypauswahl (PTS) mit den bestmöglichen Kommunikationsparametern (SCARD_PROTOCOL_OPTIMAL) durchführen muss oder das implizite Protokoll der Karte mit Standardparametern (SCARD_PROTOCOL_DEFAULT) verwenden muss. Wenn die Karte nur ein Protokoll mit einem Satz von Kommunikationsparametern unterstützt, werden die Bits ignoriert.

  • Parameters.DeviceIoControl.InputBufferLength Muss auf sizeof(ULONG) festgelegt werden. Der Fahrer entscheidet, welches Protokoll aus der Maske mit der eingefügten Karte verwendet werden soll.

Ausgabepuffer

  • Irp->AssociatedIrp.SystemBuffer Der Treiber speichert das ausgewählte Protokoll hier (z. B. SCARD_PROTOCOL_T1). Es kann nur ein Bisschen aus der Maske festgelegt werden.

Länge des Ausgabepuffers

  • Parameters.DeviceIoControl.OutputBufferLength Muss sizeof(ULONG) sein.

Statusblock

Irp->IoStatus.Information muss auf sizeof(ULONG) festgelegt werden.

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

Wert Bedeutung
STATUS_SUCCESS Ein Protokoll wurde erfolgreich ausgewählt.
STATUS_NO_MEDIA Im Lesegerät wird keine Smartcard erkannt.
STATUS_IO_TIMEOUT Timeout des Vorgangs.
STATUS_NOT_SUPPORTED Die Smartcard unterstützt keines der angeforderten Protokolle.
STATUS_INVALID_DEVICE_REQUEST Die Maske enthält kein bekanntes Protokoll.

Weitere Informationen finden Sie unter NTSTATUS Values.

Anforderungen

Anforderung Wert
Header- winsmcrd.h

Siehe auch

Designleitfaden für Near Field Communication (NFC)

Smartcard-Entwurfshandbuch