Partager via


ISCardISO7816::ManageChannel, méthode

[La méthode ManageChannel peut être utilisée 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 ManageChannel construit une commande APDU ( Application Protocol Data Unit ) qui ouvre et ferme des canaux logiques.

La fonction open ouvre un nouveau canal logique autre que le canal de base. Des options sont fournies pour que le carte attribue un numéro de canal logique ou que le numéro de canal logique soit fourni à l’carte.

La fonction close ferme explicitement un canal logique autre que le canal de base. Une fois la fermeture réussie, le canal logique est disponible pour la réutilisation.

Syntaxe

HRESULT ManageChannel(
  [in]      BYTE       byChannelState,
  [in]      BYTE       byChannel,
  [in, out] LPSCARDCMD *ppCmd
);

Paramètres

byChannelState [in]

Le bit b8 de P1 est utilisé pour indiquer la fonction d’ouverture ou de fermeture ; si b8 a la valeur 0, MANAGE CHANNEL ouvre un canal logique et si b8 a la valeur 1, MANAGE CHANNEL ferme un canal logique :

P1 = '00' à ouvrir

P1 = '80' à fermer

Les autres valeurs sont RFU

byChannel [in]

Pour la fonction open (P1 = '00'), les bits b1 et b2 de P2 sont utilisés pour coder le numéro de canal logique de la même manière que dans l’octet de classe, les autres bits de P2 étant RFU.

Lorsque b1 et b2 de P2 ont la valeur NULL, le carte attribue un numéro de canal logique qui sera retourné en bits b1 et b2 du champ de données.

Lorsque b1 et/ou b2 de P2 ne sont pas NULL, ils codent un numéro de canal logique autre que le numéro de base ; ensuite, le carte ouvre le numéro de canal logique attribué en externe.

ppCmd [in, out]

Lors de l’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 à l’aide du 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

Lorsque la fonction d’ouverture est correctement exécutée à partir du canal logique de base, le mf est implicitement sélectionné comme DF actuel et la status de sécurité du nouveau canal logique doit être identique au canal logique de base après ATR. La status de sécurité du nouveau canal logique doit être distincte de celle de tout autre canal logique.

Lorsque la fonction d’ouverture est correctement exécutée à partir d’un canal logique, qui n’est pas le canal de base, la DF actuelle du canal logique qui a émis la commande est sélectionnée comme DF actuelle. En outre, la status de sécurité pour le nouveau canal logique doit être identique à la status de sécurité du canal logique à partir duquel la fonction ouverte a été exécutée.

Après une fonction de fermeture réussie, la status de sécurité liée à ce canal logique est perdue.

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 retourner un code d’erreur de carte intelligent 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