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 |
---|---|
|
Benutzermodusanbieter abrufen. |
|
Abrufen von Kernelmodusanbietern. |
|
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.
[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 |
---|---|
|
Die Funktion war erfolgreich. |
|
Die durch den pcbBuffer Parameter angegebene Größe ist nicht groß genug, um alle Daten aufzunehmen. |
|
Mindestens ein Parameter ist ungültig. |
|
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 |