Share via


Fonction SCardIntroduceCardTypeA (winscard.h)

La fonction SCardIntroduceCardType introduit une carte intelligente au sous-système smart carte (pour l’utilisateur actif) en l’ajoutant à la base de données smart carte.

Syntaxe

LONG SCardIntroduceCardTypeA(
  [in]           SCARDCONTEXT hContext,
  [in]           LPCSTR       szCardName,
  [in, optional] LPCGUID      pguidPrimaryProvider,
  [in, optional] LPCGUID      rgguidInterfaces,
  [in]           DWORD        dwInterfaceCount,
  [in]           LPCBYTE      pbAtr,
  [in]           LPCBYTE      pbAtrMask,
  [in]           DWORD        cbAtrLen
);

Paramètres

[in] hContext

Handle qui identifie le contexte resource manager. Le contexte resource manager est défini par un appel précédent à SCardEstablishContext. Ce paramètre ne peut pas avoir la valeur NULL.

[in] szCardName

Nom par lequel l’utilisateur peut reconnaître le carte.

[in, optional] pguidPrimaryProvider

Pointeur vers l’identificateur (GUID) du fournisseur de services principal du carte intelligent.

[in, optional] rgguidInterfaces

Tableau d’identificateurs (GUID) qui identifient les interfaces prises en charge par le carte intelligent.

[in] dwInterfaceCount

Nombre d’identificateurs dans le tableau rgguidInterfaces .

[in] pbAtr

Chaîne ATR qui peut être utilisée à des fins de correspondance lors de l’interrogation de la base de données smart carte (pour plus d’informations, consultez SCardListCards). La longueur de cette chaîne est déterminée par l’analyse ATR normale.

[in] pbAtrMask

Masque de bits facultatif à utiliser pour comparer les ATR des cartes à puce à l’ATR fourni dans pbAtr. Si cette valeur n’est pas NULL, elle doit pointer vers une chaîne d’octets de la même longueur que la chaîne ATR fournie dans pbAtr. Lorsqu’une chaîne ATR A donnée est comparée à l’ATR fournie dans pbAtr, elle correspond à si et uniquement si A & M = pbAtr, où M est le masque fourni et & représente AND au niveau du bit.

[in] cbAtrLen

Longueur du masque ATR et facultatif. Si cette valeur est égale à zéro, la longueur de l’ATR est déterminée par l’analyse ATR normale. Cette valeur ne peut pas être égale à zéro si une valeur pbAtr est fournie.

Valeur retournée

Cette fonction retourne des valeurs différentes selon qu’elle réussit ou échoue.

Code de retour Description
Success
SCARD_S_SUCCESS.
Échec
Code d'erreur. Pour plus d’informations, consultez Valeurs de retour de carte à puce.

Remarques

Cette fonction n’est pas redirigée, mais l’appel de la fonction à l’intérieur d’une session Bureau à distance n’entraîne pas d’erreur. Cela signifie uniquement que le résultat provient de l’ordinateur distant au lieu de l’ordinateur local.

La fonction SCardIntroduceCardType est une fonction de gestion de base de données. Pour plus d’informations sur d’autres fonctions de gestion de base de données, consultez Fonctions de gestion de base de données de carte à puce.

Pour supprimer un carte intelligent, utilisez SCardForgetCardType.

Exemples

L’exemple suivant montre comment introduire un type carte. L’exemple suppose que hContext est un handle valide obtenu à partir d’un appel précédent à la fonction SCardEstablishContext .

GUID  MyGuid = { 0xABCDEF00,
                 0xABCD,
                 0xABCD,
                 0xAA, 0xBB, 0xCC, 0xDD,
                 0xAA, 0xBB, 0xCC, 0xDD };

static const BYTE MyATR[] =     { 0xaa, 0xbb, 0xcc, 0x00, 0xdd };
static const BYTE MyATRMask[] = { 0xff, 0xff, 0xff, 0x00, 0xff};

LONG            lReturn;

lReturn = SCardIntroduceCardType(hContext, 
                                 L"MyCardName",
                                 &MyGuid,
                                 NULL,    // No interface array
                                 0,       // Interface count = 0
                                 MyATR,
                                 MyATRMask,
                                 sizeof(MyATR));
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardIntroduceCardType\n");

Notes

L’en-tête winscard.h définit SCardIntroduceCardType comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winscard.h
Bibliothèque Winscard.lib
DLL Winscard.dll

Voir aussi

SCardEstablishContext

SCardForgetCardType

SCardIntroduceReader

SCardIntroduceReaderGroup

SCardListCards