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.
[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 |
---|---|
|
Die Funktion war erfolgreich. |
|
Die vom pcbBuffer-Parameter angegebene Größe ist nicht groß genug, um alle Daten aufzunehmen. |
|
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 |