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
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)