ISCardISO7816::SelectFile-Methode

[Die SelectFile-Methode ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt Anforderungen angegeben sind. Es ist nicht für die Verwendung in Windows Server 2003 mit Service Pack 1 (SP1) und höher, Windows Vista, Windows Server 2008 und nachfolgenden Versionen des Betriebssystems verfügbar. Die Smartcardmodule bieten ähnliche Funktionen.]

Die SelectFile-Methode erstellt einen APDU-Befehl (Application Protocol Data Unit), mit dem eine aktuelle elementare Datei innerhalb eines logischen Kanals festgelegt wird. Nachfolgende Befehle verweisen möglicherweise implizit über den logischen Kanal auf die aktuelle Datei.

Wenn Sie ein Verzeichnis (DF) innerhalb des Kartendateispeichers auswählen , das möglicherweise der Stamm (MF) des Dateispeichers ist, wird es zum aktuellen DF. Nach einer solchen Auswahl kann über diesen logischen Kanal auf eine implizite aktuelle elementare Datei verwiesen werden.

Wenn Sie eine elementare Datei auswählen, werden die ausgewählte Datei und ihre übergeordnete Datei als aktuelle Dateien definiert.

Nach der Zurücksetzungsantwort wird die MF implizit über den grundlegenden logischen Kanal ausgewählt, es sei denn, sie wird in den historischen Bytes oder in der anfänglichen Datenzeichenfolge anders angegeben.

Syntax

HRESULT SelectFile(
  [in]      BYTE         byP1,
  [in]      BYTE         byP2,
  [in]      LPBYTEBUFFER pData,
  [in]      LONG         lBytesToRead,
  [in, out] LPSCARDCMD   *ppCmd
);

Parameter

byP1 [ In]

Auswahlsteuer steuerelement.

P1 (oberes Byte in Wort): 8 7 6 5 4 3 2 1 Bedeutung
000000xx
Datei-ID auswählen
00000000
EF, DF oder MF
00000001
Untergeordnete DF
00000010
EF unter DF
00000011
Übergeordnete DF des aktuellen DF

Bei P1=00 weiß die Karte entweder aufgrund einer bestimmten Codierung der Datei-ID oder aufgrund des Kontexts der Ausführung des Befehls, wenn die auszuwählende Datei die MF, ein DF oder ein EF ist.

Wenn P1-P2=0000 angegeben wird, muss diese in den folgenden Umgebungen eindeutig sein:

  • Unmittelbaren unteren Teil des aktuellen DF
  • Übergeordnete DF
  • Unmittelbar übergeordnetes DF

Wenn P1-P2=0000 ist und das Datenfeld leer oder gleich 3F00 ist, wählen Sie die MF aus.

Wenn P1=04, ist das Datenfeld ein DF-Name, möglicherweise rechts abgeschnitten.

Wenn dies unterstützt wird, müssen aufeinander folgende Befehle mit demselben Datenfeld DFs auswählen, deren Namen mit dem Datenfeld übereinstimmen (d. h. mit dem Befehlsdatenfeld beginnen). Wenn die Karte den Befehl mit einem leeren Datenfeld akzeptiert, können alle oder eine Teilmenge der DFs nacheinander ausgewählt werden.

byP2 [ In]

Auswahlsteuer steuerelement.

pData [ In]

Daten für den Vorgang bei Bedarf; else, NULL. Folgende Datentypen werden in diesem Parameter übergeben:

  • Datei-ID
  • Pfad aus der MF
  • Pfad aus dem aktuellen DF
  • DF-Name

lBytesToRead [ In]

Leer (d. h. 0) oder maximale Länge der daten, die als Antwort erwartet werden.

ppCmd [ in, out]

Bei der Eingabe ein Zeiger auf ein ISCardCmd-Schnittstellenobjekt oder NULL.

Bei der Rückgabe wird er mit dem von diesem Vorgang erstellten APDU-Befehl gefüllt. Wenn ppCmd auf NULL festgelegt wurde, wird intern ein SMARTCARD-ISCardCmd-Objekt erstellt und über den ppCmd-Zeiger zurückgegeben.

Rückgabewert

Die -Methode gibt einen der folgenden möglichen Werte zurück.

Rückgabecode Beschreibung
S _ OK
Operation erfolgreich abgeschlossen.
E _ INVALIDARG
Ungültiger Parameter.
_E-ZEIGER
Ein fehlerhafter Zeiger wurde übergeben.
E _ OUTOFMEMORY
Nicht genügend Arbeitsspeicher.

Bemerkungen

Sofern nicht anders angegeben, ändert die korrekte Ausführung des gekapselten Befehls den Sicherheitsstatus gemäß den folgenden Regeln:

  • Wenn die aktuelle elementare Datei geändert wird oder es keine aktuelle elementare Datei gibt, geht der sicherheitsspezifische Sicherheitsstatus einer früheren aktuellen elementaren Datei verloren.
  • Wenn das aktuelle Dateispeicherverzeichnis (DF) nachfolgert oder mit dem früheren aktuellen DF identisch ist, geht der sicherheitsspezifische Sicherheitsstatus des früheren aktuellen DF verloren. Der Sicherheitsstatus, der allen gängigen Vorgängern des vorherigen und neuen aktuellen DF gemeinsam ist, wird beibehalten.

Eine Liste aller von dieser Schnittstelle bereitgestellten Methoden finden Sie unter ISCardISO7816.

Zusätzlich zu den oben aufgeführten COM-Fehlercodes gibt diese Schnittstelle möglicherweise einen Smartcard-Fehlercode zurück, wenn eine Smartcardfunktion aufgerufen wurde, um die Anforderung zu erfüllen. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Nur [ XP-Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Nur Server [ 2003-Desktop-Apps]
Ende des Supports (Client)
Windows XP
Ende des Supports (Server)
Windows Server 2003
Header
Scardssp.h
Typbibliothek
Scardsrv.tlb
DLL
Scardssp.dll
IID
IID _ ISCardISO7816 ist als 53B6AA68-3F56-11D0-916B-00AA00C18068 definiert.

Weitere Informationen

ISCardISO7816