Partager via


SCardIntroduceCardTypeA, fonction (winscard.h)

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

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 être NULL.

[in] szCardName

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

[in, optional] pguidPrimaryProvider

Pointeur vers l’identificateur (GUID) du fournisseur de services principal de la carte à puce.

[in, optional] rgguidInterfaces

Tableau d’identificateurs (GUID) qui identifient les interfaces prises en charge par la carte à puce.

[in] dwInterfaceCount

Nombre d’identificateurs dans le tableau rgguidInterfaces.

[in] pbAtr

chaîne ATR qui peut être utilisée à des fins correspondantes lors de l’interrogation de la base de données de carte à puce (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 lors de la comparaison des ATR des cartes à puce fournies dans pbAtr. Si cette valeur n’est pasNULL, 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 donnée A est comparée à l’ATR fourni dans pbAtr, il correspond si et seulement si A & M = pbAtr, où M est le masque fourni et & représente le bit AND.

[in] cbAtrLen

Longueur du masque ATR et ATR 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 de retour

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

Retourner le code 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 une carte à puce, utilisez SCardForgetCardType.

Exemples

L’exemple suivant montre comment introduire un type de 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");

Note

L’en-tête winscard.h définit SCardIntroduceCardType comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winscard.h
bibliothèque Winscard.lib
DLL Winscard.dll

Voir aussi

SCardEstablishContext

SCardForgetCardType

SCardIntroduceReader

SCardIntroduceReaderGroup

SCardListCards