SCardGetCardTypeProviderNameA-Funktion (winscard.h)
Die SCardCardTypeProviderName-Funktion gibt den Namen des Moduls (Dynamic Link Library) zurück, das den Anbieter für einen bestimmten Kartennamen und Anbietertypenthält.
Syntax
LONG SCardGetCardTypeProviderNameA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szCardName,
[in] DWORD dwProviderId,
[out] CHAR *szProvider,
[in, out] LPDWORD pcchProvider
);
Parameter
[in] hContext
Behandeln Sie das Ressourcen-Manager-Kontext. Der Ressourcen-Manager-Kontext kann durch einen vorherigen Aufruf von SCardEstablishContextfestgelegt werden. Dieser Wert kann NULL- werden, wenn der Aufruf von SCardCardTypeProviderName nicht an einen bestimmten Kontextweitergeleitet wird.
[in] szCardName
Name des Kartentyps, dem dieser Anbietername zugeordnet ist.
[in] dwProviderId
Bezeichner für den Anbieter, der diesem Kartentyp zugeordnet ist.
Wert | Bedeutung |
---|---|
|
Die Funktion ruft den Namen der smartcardsprimären Dienstanbieters als GUID-Zeichenfolge ab. |
|
Die Funktion ruft den Namen des kryptografischen Dienstanbietersab. |
|
Die Funktion ruft den Namen der Smartcard Schlüsselspeicheranbieters (KSP) ab. |
|
Die Funktion ruft den Namen des Kartenmoduls ab. |
[out] szProvider
Zeichenfolgenvariable zum Empfangen des Anbieternamens nach erfolgreichem Abschluss dieser Funktion.
[in, out] pcchProvider
Zeiger auf DWORD--Wert. Bei eingaben stellt pcchProvider die Länge des szProvider- Puffers in Zeichen. Wenn dieser Wert SCARD_AUTOALLOCATE ist, wird szProvider in einen Bytezeiger konvertiert und erhält die Adresse eines Speicherblocks, der die Zeichenfolge enthält. Dieser Speicherblock muss durch Aufrufen SCardFreeMemory-umgangen werden.
Bei der Ausgabe stellt dieser Wert die tatsächliche Anzahl von Zeichen dar, einschließlich des null Terminator, in der szProvider Variable.
Rückgabewert
Diese Funktion gibt unterschiedliche Werte zurück, je nachdem, ob sie erfolgreich ist oder fehlschlägt.
Rückgabecode | Beschreibung |
---|---|
|
SCARD_S_SUCCESS. |
|
Fehlercode. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte. |
Bemerkungen
Diese Funktion wird nicht umgeleitet, aber das Aufrufen der Funktion in einer Remotedesktopsitzung führt nicht zu einem Fehler. Dies bedeutet nur, dass das Ergebnis vom Remotecomputer statt vom lokalen Computer stammt.
Nach erfolgreichem Abschluss dieser Funktion kann der Wert in szProvider als dritten Parameter in einem Aufruf von CryptAcquireContextverwendet werden.
Beispiele
Das folgende Beispiel zeigt, wie der Anbietername für den angegebenen Lesekontext abgerufen wird. Im Beispiel wird davon ausgegangen, dass hContext ein gültiges Handle ist, das aus einem vorherigen Aufruf der SCardEstablishContext--Funktion abgerufen wurde.
LPTSTR szProvider = NULL;
LPTSTR szCardName = _T("WindowsCard");
DWORD chProvider = SCARD_AUTOALLOCATE;
LONG lReturn = SCARD_S_SUCCESS;
// Retrieve the provider name.
// hContext was set by SCardEstablishContext.
lReturn = SCardGetCardTypeProviderName(hContext,
szCardName,
SCARD_PROVIDER_CSP,
(LPTSTR)&szProvider,
&chProvider);
if (SCARD_S_SUCCESS == lReturn)
{
BOOL fSts = TRUE;
HCRYPTPROV hProv = NULL;
// Acquire a Cryptographic operation context.
fSts = CryptAcquireContext(&hProv,
NULL,
szProvider,
PROV_RSA_FULL,
0);
// Perform Cryptographic operations with smart card
// ...
// Free memory allocated by SCardGetCardTypeProviderName.
lReturn = SCardFreeMemory(hContext, szProvider);
}
Anmerkung
Der winscard.h-Header definiert SCardCardTypeProviderName als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winscard.h |
Library | Winscard.lib |
DLL- | Winscard.dll |