Freigeben über


CryptReleaseContext-Funktion (wincrypt.h)

Wichtig Diese API ist veraltet. Neue und vorhandene Software sollte mit der Verwendung von Kryptografie-APIs der nächsten Generation beginnen. Microsoft kann diese API in zukünftigen Versionen entfernen.
 
Die CryptReleaseContext-Funktion gibt das Handle eines Kryptografiedienstanbieters (CSP ) und eines Schlüsselcontainers frei. Bei jedem Aufruf dieser Funktion wird die Verweisanzahl auf dem CSP um eins reduziert. Wenn die Verweisanzahl null erreicht, wird der Kontext vollständig freigegeben und kann von keiner Funktion in der Anwendung mehr verwendet werden.

Eine Anwendung ruft diese Funktion auf, nachdem die Verwendung des CSP abgeschlossen ist. Nachdem diese Funktion aufgerufen wurde, ist das freigegebene CSP-Handle nicht mehr gültig. Diese Funktion zerstört keine Schlüsselcontainer oder Schlüsselpaare.

Syntax

BOOL CryptReleaseContext(
  [in] HCRYPTPROV hProv,
  [in] DWORD      dwFlags
);

Parameter

[in] hProv

Handle eines Kryptografiedienstanbieters (CSP), der durch einen Aufruf von CryptAcquireContext erstellt wurde.

[in] dwFlags

Für die zukünftige Verwendung reserviert und muss null sein. Wenn dwFlags nicht auf 0 festgelegt ist, gibt diese Funktion FALSE zurück, aber der CSP wird freigegeben.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich null (TRUE).

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE). Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Einige mögliche Fehlercodes sind in der folgenden Tabelle aufgeführt.

Rückgabecode Beschreibung
ERROR_BUSY
Der von hProv angegebene CSP-Kontext wird derzeit von einem anderen Prozess verwendet.
ERROR_INVALID_HANDLE
Einer der Parameter gibt ein ungültiges Handle an.
ERROR_INVALID_PARAMETER
Einer der Parameter enthält einen ungültigen Wert. Dies ist in den meisten Fällen ein ungültiger Zeiger.
NTE_BAD_FLAGS
Der dwFlags-Parameter ist ungleich null.
NTE_BAD_UID
Der hProv-Parameter enthält kein gültiges Kontexthandle.

Hinweise

Nachdem diese Funktion aufgerufen wurde, ist die CSP-Sitzung beendet, und alle vorhandenen Sitzungsschlüssel und Hashobjekte , die mit dem hProv-Handle erstellt wurden, sind nicht mehr gültig. In der Praxis sollten alle diese Objekte durch Aufrufe von CryptDestroyKey und CryptDestroyHash zerstört werden, bevor CryptReleaseContext aufgerufen wird.

Beispiele

Ein Beispiel, das diese Funktion verwendet, finden Sie unter Beispiel-C-Programm: Erstellen und Hashen eines Sitzungsschlüssels.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

CryptAcquireContext

CryptDestroyHash

CryptDestroyKey

Dienstanbieterfunktionen