Fonction SCardGetReaderDeviceInstanceIdW (winscard.h)
La fonction SCardGetReaderDeviceInstanceId obtient l’identificateur instance de l’appareil du lecteur carte pour le nom de lecteur donné. Cette fonction n’affecte pas l’état du lecteur.
Syntaxe
LONG SCardGetReaderDeviceInstanceIdW(
[in] SCARDCONTEXT hContext,
[in] LPCWSTR szReaderName,
[out, optional] LPWSTR szDeviceInstanceId,
[in, out] LPDWORD pcchDeviceInstanceId
);
Paramètres
[in] hContext
Handle qui identifie le contexte resource manager pour la requête. Vous pouvez définir le contexte resource manager par un appel précédent à la fonction SCardEstablishContext . Ce paramètre ne peut pas avoir la valeur NULL.
[in] szReaderName
Nom du lecteur. Vous pouvez obtenir cette valeur en appelant la fonction SCardListReaders .
[out, optional] szDeviceInstanceId
Mémoire tampon qui reçoit l’ID de instance de l’appareil du lecteur. Si cette valeur est NULL, la fonction ignore la longueur de la mémoire tampon fournie dans le paramètre cchDeviceInstanceId , écrit la longueur de la mémoire tampon qui aurait été retournée si ce paramètre n’avait pas été NULL pour cchDeviceInstanceId et retourne un code de réussite.
[in, out] pcchDeviceInstanceId
Longueur, en caractères, de la mémoire tampon szDeviceInstanceId , y compris la terminaison NULL . Si la longueur de la mémoire tampon est spécifiée en tant que SCARD_AUTOALLOCATE, le paramètre szDeviceInstanceId est converti en pointeur vers un pointeur d’octet et reçoit l’adresse d’un bloc de mémoire contenant l’ID de instance. Ce bloc de mémoire doit être libéré avec la fonction SCardFreeMemory.
Valeur retournée
Cette fonction retourne des valeurs différentes selon qu’elle réussit ou échoue.
Code de retour | Description |
---|---|
|
SCARD_S_SUCCESS. |
|
Code d'erreur. Pour plus d’informations, consultez Valeurs de retour de carte à puce. |
Remarques
Cette fonction n’est pas redirigée. L’appel de la fonction SCardGetReaderDeviceInstanceId à l’intérieur d’une session Bureau à distance échoue avec le code d’erreur SCARD_E_READER_UNAVAILABLE.
Exemples
LONG lReturn;
LPTSTR szReaderName = "USB Smart Card Reader 0";
WCHAR szDeviceInstanceId[256];
DWORD cchDeviceInstanceId = 256;
// Retrieve the reader's device instance ID.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderDeviceInstanceId (hContext,
szReaderName,
szDeviceInstanceId,
&cchDeviceInstanceId);
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardGetReaderDeviceInstanceId - %x\n", lReturn);
// Take appropriate action.
}
Notes
L’en-tête winscard.h définit SCardGetReaderDeviceInstanceId 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
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winscard.h |