Fonction SCardListReadersWithDeviceInstanceIdA (winscard.h)
La fonction SCardListReadersWithDeviceInstanceId obtient la liste des lecteurs qui ont fourni un identificateur de instance d’appareil. Cette fonction n’affecte pas l’état du lecteur.
Syntaxe
LONG SCardListReadersWithDeviceInstanceIdA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szDeviceInstanceId,
[out, optional] LPSTR mszReaders,
[in, out] LPDWORD pcchReaders
);
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] szDeviceInstanceId
Id de instance de l’appareil du lecteur. Vous pouvez obtenir cette valeur en appelant la fonction SCardGetReaderDeviceInstanceId avec le nom du lecteur ou en appelant la fonction SetupDiGetDeviceInstanceId à partir du DDK.
[out, optional] mszReaders
Plusieurs chaînes qui contiennent les lecteurs carte intelligents dans l’identificateur de instance d’appareil fourni. Si cette valeur est NULL, la fonction ignore la longueur de la mémoire tampon fournie dans le paramètre pcchReaders , écrit la longueur de la mémoire tampon qui aurait été retournée si ce paramètre n’avait pas été NULL pour pcchReaders et retourne un code de réussite.
[in, out] pcchReaders
Longueur, en caractères, de la mémoire tampon mszReaders . Ce paramètre reçoit la longueur réelle de la structure à chaînes multiples, y compris tous les caractères null de fin. Si la longueur de la mémoire tampon est spécifiée en tant que SCARD_AUTOALLOCATE, mszReaders est converti en pointeur vers un pointeur d’octet et reçoit l’adresse d’un bloc de mémoire qui contient la structure à chaînes multiples. Une fois cette mémoire terminée, libérez-la à l’aide de 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 SCardListReadersWithDeviceInstanceId à l’intérieur d’une session Bureau à distance échoue avec le code d’erreur SCARD_E_READER_UNAVAILABLE.
Exemples
szDeviceInstanceIdcchReaderNameLONG lReturn, lReturn2;
LPTSTR pmszReaders = NULL;
LPTSTR pReader = NULL;WCHAR
DWORD cchReaderName = SCARD_AUTOALLOCATE;
// Retrieve the reader’s name from it’s device instance ID
// hContext was set by a previous call to SCardEstablishContext.
// szDeviceInstanceId was obtained by calling SetupDiGetDeviceInstanceId
lReturn = SCardListReadersWithDeviceInstanceId (hContext,
szDeviceInstanceId,
(LPTSTR)&pmszReaders,
&cchReaderName);
switch( lReturn )
{
case SCARD_E_NO_READERS_AVAILABLE:
printf("No readers have the provided device instance ID.\n");
// Take appropriate action.
// ...
break;
case SCARD_S_SUCCESS:
// Do something with the multi string of readers.
// Output the values.
// A double-null terminates the list of values.
pReader = pmszReaders;
while ( '\0' != *pReader )
{
// Display the value.
printf("Reader: %S\n", pReader );
// Advance to the next value.
pReader = pReader + wcslen((wchar_t *)pReader) + 1;
}
// Free the memory.
lReturn2 = SCardFreeMemory( hContext,
pmszReaders );
if ( SCARD_S_SUCCESS != lReturn2 )
printf("Failed SCardFreeMemory\n");
break;
default:
printf("Failed SCardListReaders\n");
// Take appropriate action.
// ...
break;
Notes
L’en-tête winscard.h définit SCardListReadersWithDeviceInstanceId 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 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 |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour