Partager via


SCardIntroduceReaderA, fonction (winscard.h)

La fonction SCardIntroduceReader introduit un nouveau nom pour une carte à puce existantelecteur.

Remarque lecteurs de carte à puce sont automatiquement introduits dans le système ; Le programme d’installation d’un fournisseur de cartes à puce peut également introduire un lecteur de carte à puce sur le système.
 

Syntaxe

LONG SCardIntroduceReaderA(
  [in] SCARDCONTEXT hContext,
  [in] LPCSTR       szReaderName,
  [in] LPCSTR       szDeviceName
);

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] szReaderName

Nom complet à attribuer au lecteur.

[in] szDeviceName

Nom système du lecteur de carte à puce, par exemple « MyReader 01 ».

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

Tous les lecteurs installés sur le système sont automatiquement introduits par leur nom système. En règle générale, SCardIntroduceReader est appelée uniquement pour modifier le nom d’un lecteur existant.

La fonction SCardIntroduceReader 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 lecteur, utilisez SCardForgetReader.

Exemples

L’exemple suivant montre l’introduction d’un lecteur de carte à puce.

// This example renames the reader name.
// This is a two-step process (first add the new
// name, then forget the old name).
LPBYTE    pbAttr = NULL;
DWORD     cByte = SCARD_AUTOALLOCATE;
LONG      lReturn;

// Step 1: Add the new reader name.
// The device name attribute is a necessary value.
// hCardHandle was set by a previous call to SCardConnect.
lReturn = SCardGetAttrib(hCardHandle,
                         SCARD_ATTR_DEVICE_SYSTEM_NAME,
                         (LPBYTE)&pbAttr,
                         &cByte);
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetAttrib\n");
    exit(1);  // Or other error action
}
// Add the reader name.
// hContext was set earlier by SCardEstablishContext.
lReturn = SCardIntroduceReader(hContext,
                               TEXT("My New Reader Name"),
                               (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardIntroduceReader\n");
    exit(1);  // Or other error action
}

// Step 2: Forget the old reader name.
lReturn = SCardForgetReader(hContext,
                            (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardForgetReader\n");
    exit(1);  // Or other error action
}

// Free the memory when done.
lReturn = SCardFreeMemory( hContext, pbAttr );

Note

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

SCardForgetReader

SCardIntroduceCardType

SCardIntroduceReaderGroup