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 dem intelligenten Karte verwendet, nachdem die Karte erkannt (eingefügt) wurde.
Hauptcode
Eingabepuffer
Irp->AssociatedIrp.SystemBuffer Enthält eine Maske von Protokollen, die für die folgenden Übertragungen akzeptabel sind. Die Maske kann ein bitweises OR 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) oder das implizite Protokoll des 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 Treiber entscheidet, welches Protokoll aus der Maske mit dem 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 Bit 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 ist auf einen der folgenden Werte festgelegt.
Wert | Bedeutung |
---|---|
STATUS_SUCCESS | Ein Protokoll wurde erfolgreich ausgewählt. |
STATUS_NO_MEDIA | Im Reader wird keine intelligente Karte erkannt. |
STATUS_IO_TIMEOUT | Timeout für den Vorgang. |
STATUS_NOT_SUPPORTED | Die intelligente Karte unterstützt keines der angeforderten Protokolle. |
STATUS_INVALID_DEVICE_REQUEST | Die Maske enthält kein bekanntes Protokoll. |
Weitere Informationen finden Sie unter NTSTATUS-Werte.
Anforderungen
Anforderung | Wert |
---|---|
Header | winsmcrd.h |