Freigeben über


BCryptEnumRegisteredProviders-Funktion (bcrypt.h)

Die Funktion BCryptEnumRegisteredProviders ruft Informationen zu den registrierten Anbietern ab.

Syntax

NTSTATUS BCryptEnumRegisteredProviders(
  [in, out] ULONG            *pcbBuffer,
  [in, out] PCRYPT_PROVIDERS *ppBuffer
);

Parameter

[in, out] pcbBuffer

Ein Zeiger auf einen ULONG-Wert , der beim Eintrag die Größe des Puffers in Bytes 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.

Hinweis Dies ist die Gesamtgröße des gesamten Puffers in Bytes, nicht nur die Größe der CRYPT_PROVIDERS-Struktur . Der Puffer muss in der Lage sein, neben der CRYPT_PROVIDERS-Struktur auch andere Daten für die Anbieter zu enthalten.
 

[in, out] ppBuffer

Ein Zeiger auf einen Pufferzeiger, der eine CRYPT_PROVIDERS Struktur und andere Daten empfängt, die die Sammlung registrierter Anbieter beschreibt.

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

Wenn dieser Parameter die Adresse eines NULL-Zeigers ist, ordnet diese Funktion den erforderlichen Arbeitsspeicher zu, füllt den Speicher mit den Informationen zu den Anbietern und platziert den Zeiger auf diesen Speicher in diesem Parameter. Wenn Sie mit der Verwendung dieses Arbeitsspeichers fertig sind, 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 aufzunehmen, gibt diese Funktion STATUS_BUFFER_TOO_SMALL zurück.

Rückgabewert

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

Mögliche Rückgabecodes umfassen folgendes, sind aber nicht darauf beschränkt.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Funktion war erfolgreich.
STATUS_BUFFER_TOO_SMALL
Die vom pcbBuffer-Parameter angegebene Größe ist nicht groß genug, um alle Daten aufzunehmen.
STATUS_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig.

Hinweise

Die BCryptEnumRegisteredProviders-Funktion kann auf zwei Arten aufgerufen werden:

  • Die erste besteht darin, dass die BCryptEnumRegisteredProviders-Funktion den Arbeitsspeicher ordnet. Dies wird erreicht, indem die Adresse eines NULL-Zeigers für den ppBuffer-Parameter übergeben wird.

    Das folgende Beispiel zeigt, wie Sie die BCryptEnumRegisteredProviders-Funktion verwenden, um Arbeitsspeicher zuzuweisen, indem Sie die Adresse eines NULL-Zeigers für den ppBuffer-Parameter übergeben.

    PCRYPT_PROVIDERS pBuffer = NULL;
    BCryptEnumRegisteredProviders(/*...*/, &pBuffer);
    
    
    

    Dieser Code ordnet den arbeitsspeicher zu, der für die CRYPT_PROVIDERS-Struktur und die zugeordneten Zeichenfolgen erforderlich ist. Wenn die BCryptEnumRegisteredProviders-Funktion auf diese Weise verwendet wird, müssen Sie den Speicher freigeben, wenn er nicht mehr benötigt wird, indem Sie ppBuffer an die BCryptFreeBuffer-Funktion übergeben.

  • Die zweite Methode besteht darin, den erforderlichen Arbeitsspeicher selbst zuzuweisen. Dies wird erreicht, indem die BCryptEnumRegisteredProviders-Funktion mit NULL für den ppBuffer-Parameter aufgerufen wird. Die BCryptEnumRegisteredProviders-Funktion platziert den Wert, auf den der pcbBuffer-Parameter verweist, die erforderliche Größe der CRYPT_PROVIDERS-Struktur und aller Zeichenfolgen in Bytes. Anschließend weisen Sie den erforderlichen Arbeitsspeicher zu und übergeben die Adresse dieses Pufferzeigers für den ppBuffer-Parameter in einem zweiten Aufruf der Funktion BCryptEnumRegisteredProviders .

BCryptEnumRegisteredProviders kann nur im Benutzermodus aufgerufen werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile bcrypt.h
Bibliothek Bcrypt.lib
DLL Bcrypt.dll

Weitere Informationen

BCryptFreeBuffer

CRYPT_PROVIDERS