Freigeben über


BCryptResolveProviders-Funktion (bcrypt.h)

Die BCryptResolveProviders Funktion ruft eine Auflistung aller Anbieter ab, die den angegebenen Kriterien entsprechen.

Syntax

NTSTATUS BCryptResolveProviders(
  [in, optional] LPCWSTR              pszContext,
  [in, optional] ULONG                dwInterface,
  [in, optional] LPCWSTR              pszFunction,
  [in, optional] LPCWSTR              pszProvider,
  [in]           ULONG                dwMode,
  [in]           ULONG                dwFlags,
  [in, out]      ULONG                *pcbBuffer,
  [in, out]      PCRYPT_PROVIDER_REFS *ppBuffer
);

Parameter

[in, optional] pszContext

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die den Bezeichner des Kontexts enthält, für den die Anbieter abgerufen werden sollen. Wenn dies auf NULL- oder auf eine leere Zeichenfolge festgelegt ist, wird der Standardkontext angenommen.

[in, optional] dwInterface

Der Bezeichner einer Schnittstelle, die der Anbieter unterstützen muss. Dies muss einer der CNG-Schnittstellenbezeichnersein. Wenn der pszFunction Parameter nicht NULL- oder eine leere Zeichenfolge ist, können Sie dwInterface- auf Null festlegen, um zu erzwingen, dass die Funktion die Schnittstelle ableiten soll.

[in, optional] pszFunction

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die den Algorithmus oder funktionsbezeichner enthält, den der Anbieter unterstützen muss. Dies kann einer der standardmäßigen CNG-Algorithmusbezeichner oder der Bezeichner für einen anderen registrierten Algorithmus sein. Wenn dwInterface- auf einen Wert ungleich Null festgelegt ist, kann pszFunction-NULL- sein, um alle Algorithmen und Funktionen einzuschließen.

[in, optional] pszProvider

Ein Zeiger auf eine mit Null beendete Unicode-Zeichenfolge, die den Namen des abzurufenden Anbieters enthält. Wenn dieser Parameter NULL-ist, werden alle Anbieter einbezogen.

Mit diesem Parameter können Sie einen bestimmten Anbieter angeben, der abgerufen werden soll, wenn mehrere Anbieter die anderen Kriterien erfüllen.

[in] dwMode

Gibt den Typ des abzurufenden Anbieters an. Dies kann einer der folgenden Werte sein:

Wert Bedeutung
CRYPT_UM
Benutzermodusanbieter abrufen.
CRYPT_KM
Abrufen von Kernelmodusanbietern.
CRYPT_MM
Rufen Sie anbieter für den Benutzermodus und den Kernelmodus ab.

[in] dwFlags

Eine Reihe von Flags, die das Verhalten dieser Funktion ändern.

Dies kann eine Null oder eine Kombination aus einem oder mehreren der folgenden Werte sein.

Wert Bedeutung
CRYPT_ALL_FUNCTIONS
1
Diese Funktion ruft alle funktionen ab, die von jedem Anbieter unterstützt werden, der die angegebenen Kriterien erfüllt. Wenn dieses Kennzeichen nicht angegeben ist, ruft diese Funktion nur die erste Funktion des Anbieters oder anbieters ab, die den angegebenen Kriterien entsprechen.
CRYPT_ALL_PROVIDERS
2
Diese Funktion ruft alle Anbieter ab, die den angegebenen Kriterien entsprechen. Wenn dieses Flag nicht angegeben ist, ruft diese Funktion nur den ersten Anbieter ab, der gefunden wird, der die angegebenen Kriterien erfüllt.

[in, out] pcbBuffer

Ein Zeiger auf einen DWORD- Wert, der beim Eintrag die Größe des Puffers in Byte enthält, auf den der ppBuffer-Parameter verweist. Beim Beenden empfängt dieser Wert entweder die Anzahl der in den Puffer kopierten Bytes oder die erforderliche Größe des Puffers in Bytes.

[in, out] ppBuffer

Die Adresse eines CRYPT_PROVIDER_REFS Zeigers, der die Sammlung von Anbietern empfängt, die den angegebenen Kriterien entsprechen.

Wenn dieser Parameter NULL-ist, gibt diese Funktion STATUS_SUCCESS zurück und platziert den Wert, auf den der pcbBuffer Parameter verweist, die erforderliche Größe in Byte aller Daten.

Wenn dieser Parameter die Adresse eines NULL- Zeigers ist, weist diese Funktion den erforderlichen Speicher zu, füllt den Speicher mit den Informationen zu den Anbietern aus, und platzieren Sie den Zeiger auf diesen Speicher in diesem Parameter. Wenn Sie diesen Speicher verwendet haben, geben Sie ihn frei, indem Sie diesen Zeiger an die BCryptFreeBuffer--Funktion übergeben.

Wenn dieser Parameter die Adresse eines Nicht-NULL- Zeigers ist, kopiert diese Funktion die Anbieterinformationen in diesen Puffer. Der pcbBuffer Parameter muss die Größe des gesamten Puffers in Bytes enthalten. Wenn der Puffer nicht groß genug ist, um alle Anbieterinformationen zu enthalten, gibt diese Funktion STATUS_BUFFER_TOO_SMALLzurück.

Rückgabewert

Gibt einen Statuscode zurück, der den Erfolg oder Fehler der Funktion angibt.

Mögliche Rückgabecodes umfassen, aber nicht beschränkt auf Folgendes.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Funktion war erfolgreich.
STATUS_BUFFER_TOO_SMALL
Die durch den pcbBuffer Parameter angegebene Größe ist nicht groß genug, um alle Daten aufzunehmen.
STATUS_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig.
STATUS_NOT_FOUND
Es wurde kein Anbieter gefunden, der alle angegebenen Kriterien erfüllt.

Bemerkungen

BCryptResolveProviders kann entweder über den Benutzermodus oder den Kernelmodus aufgerufen werden. Kernelmodus-Aufrufer müssen bei PASSIVE_LEVELIRQL-ausgeführt werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2008 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- bcrypt.h
Library Bcrypt.lib
DLL- Bcrypt.dll