Partager via


ISCardISO7816::SelectFile, méthode

[La méthode SelectFile est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il n’est pas disponible pour une utilisation dans Windows Server 2003 avec Service Pack 1 (SP1) et versions ultérieures, Windows Vista, Windows Server 2008 et les versions ultérieures du système d’exploitation. Les modules de carte à puce offrent des fonctionnalités similaires.]

La méthode SelectFile construit une commande APDU ( Application Protocol Data Unit ) qui définit un fichier élémentaire actuel dans un canal logique. Les commandes suivantes peuvent faire implicitement référence au fichier actif via le canal logique.

La sélection d’un répertoire (DF) dans le magasin de fichiers carte, qui peut être la racine (MF) du magasin de fichiers, en fait le DF actuel. Après une telle sélection, un fichier élémentaire actuel implicite peut être référencé par le biais de ce canal logique.

La sélection d’un fichier élémentaire définit le fichier sélectionné et son parent comme fichiers actuels.

Une fois la réponse à réinitialiser, la valeur mf est implicitement sélectionnée via le canal logique de base, sauf indication différente dans les octets historiques ou dans la chaîne de données initiale.

Syntaxe

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

Paramètres

byP1 [in]

Contrôle de sélection.

P1 (octet supérieur en mot) : 8 7 6 5 4 3 2 1 Signification
000000xx
Sélectionner l’ID de fichier
00000000
EF, DF ou MF
00000001
DF enfant
00000010
EF sous DF
00000011
DF parent de DF actuel

 

Lorsque P1=00, le carte le sait en raison d’un codage spécifique de l’ID de fichier ou en raison du contexte d’exécution de la commande si le fichier à sélectionner est mf, DF ou EF.

Quand P1-P2=0000, si un ID de fichier est fourni, il doit être unique dans les environnements suivants :

  • Enfants immédiats de la DF actuelle
  • Parent DF
  • Enfants immédiats de la DF parente

Si P1-P2=0000 et si le champ de données est vide ou égal à 3F00, sélectionnez la valeur MF.

Lorsque P1=04, le champ de données est un nom DF, éventuellement tronqué à droite.

Lorsqu’elles sont prises en charge, les commandes successives avec le même champ de données doivent sélectionner des objets de domaine dont les noms correspondent au champ de données (c’est-à-dire, commencer par le champ de données de commande). Si le carte accepte la commande avec un champ de données vide, la totalité ou un sous-ensemble des DFs peuvent être sélectionnés successivement.

byP2 [in]

Contrôle de sélection.

pData [in]

Données pour l’opération si nécessaire ; sinon, NULL. Les types de données transmises dans ce paramètre sont les suivants :

  • ID de fichier
  • chemin d’accès à partir du mf
  • chemin d’accès à partir de la DF actuelle
  • Nom DF

lBytesToRead [in]

Vide (c’est-à-dire 0) ou longueur maximale des données attendues en réponse.

ppCmd [in, out]

En entrée, pointeur vers un objet d’interface ISCardCmd ou NULL.

Au retour, il est rempli avec la commande APDU construite par cette opération. Si ppCmd a la valeur NULL, un objet smart carteISCardCmd est créé et retourné en interne via le pointeur ppCmd.

Valeur retournée

La méthode retourne l’une des valeurs possibles suivantes.

Code de retour Description
S_OK
Opération exécutée avec succès.
E_INVALIDARG
Paramètre non valide.
E_POINTER
Un pointeur incorrect a été passé.
E_OUTOFMEMORY
Mémoire insuffisante.

 

Notes

Sauf indication contraire, l’exécution correcte de la commande encapsulée modifie la status de sécurité conformément aux règles suivantes :

  • Lorsque le fichier élémentaire actuel est modifié ou lorsqu’il n’existe aucun fichier élémentaire actuel, la status de sécurité spécifique à un ancien fichier élémentaire actuel est perdue.
  • Lorsque le répertoire de magasin de fichiers (DF) actuel est descendant ou identique à l’ancien DF actuel, la status de sécurité spécifique à l’ancien DF actuel est perdue. Le status de sécurité commun à tous les ancêtres communs des anciens et nouveaux DF actuels est conservé.

Pour obtenir la liste de toutes les méthodes fournies par cette interface, consultez ISCardISO7816.

En plus des codes d’erreur COM répertoriés ci-dessus, cette interface peut renvoyer un code d’erreur smart carte si une fonction de carte intelligente a été appelée pour terminer la demande. Pour plus d’informations, consultez Valeurs de retour de carte à puce.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003 [applications de bureau uniquement]
Fin de la prise en charge des clients
Windows XP
Fin de la prise en charge des serveurs
Windows Server 2003
En-tête
Scardssp.h
Bibliothèque de types
Scardsrv.tlb
DLL
Scardssp.dll
IID
IID_ISCardISO7816 est défini comme 53B6AA68-3F56-11D0-916B-00AA00C18068

Voir aussi

ISCardISO7816