Freigeben über


SCardEstablishContext-Funktion (winscard.h)

Die SCardEstablishContext-Funktion richtet den Ressourcen-Manager-Kontext (den Bereich) ein, in dem Datenbankvorgänge ausgeführt werden.

Syntax

LONG SCardEstablishContext(
  [in]  DWORD          dwScope,
  [in]  LPCVOID        pvReserved1,
  [in]  LPCVOID        pvReserved2,
  [out] LPSCARDCONTEXT phContext
);

Parameter

[in] dwScope

Bereich des Ressourcen-Manager-Kontexts. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
SCARD_SCOPE_USER
Datenbankvorgänge werden innerhalb der Domäne des Benutzers ausgeführt.
SCARD_SCOPE_SYSTEM
Datenbankvorgänge werden innerhalb der Domäne des Systems ausgeführt. Die aufrufende Anwendung muss über geeignete Zugriffsberechtigungen für alle Datenbankaktionen verfügen.

[in] pvReserved1

Für die zukünftige Verwendung reserviert und muss NULL sein. Dieser Parameter ermöglicht es einer entsprechend privilegierten Verwaltungsanwendung, im Namen eines anderen Benutzers zu handeln.

[in] pvReserved2

Für die zukünftige Verwendung reserviert und muss NULL sein.

[out] phContext

Ein Handle für den eingerichteten Ressourcen-Manager-Kontext. Dieses Handle kann jetzt für andere Funktionen bereitgestellt werden, die versuchen, in diesem Kontext zu arbeiten.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion SCARD_S_SUCCESS zurück.

Wenn die Ausführung der Funktion fehlschlägt, wird ein Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte.

Hinweise

Das von SCardEstablishContext zurückgegebene Kontexthandle kann von Datenbankabfrage- und -verwaltungsfunktionen verwendet werden. Weitere Informationen finden Sie unter Abfragefunktionen für Smartcarddatenbanken und Smartcard-Datenbankverwaltungsfunktionen.

Verwenden Sie SCardReleaseContext, um einen eingerichteten Ressourcen-Manager-Kontext freizugeben.

Wenn der Client einen Smart Karte-Vorgang in einer Remotesitzung versucht, z. B. in einer Clientsitzung, die auf einem Terminalserver ausgeführt wird, und das verwendete Betriebssystem keine intelligente Karte-Umleitung unterstützt, gibt diese Funktion ERROR_BROKEN_PIPE zurück.

Beispiele

Im folgenden Beispiel wird ein Ressourcen-Manager-Kontext eingerichtet.

SCARDCONTEXT    hSC;
LONG            lReturn;
// Establish the context.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
                                NULL,
                                NULL,
                                &hSC);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardEstablishContext\n");
else
{
    // Use the context as needed. When done,
    // free the context by calling SCardReleaseContext.
    // ...
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winscard.h
Bibliothek Winscard.lib
DLL Winscard.dll

Weitere Informationen

SCardReleaseContext