CryptGetOIDFunctionValue-Funktion (wincrypt.h)

Die CryptGetOIDFunctionValue-Funktion fragt einen Wert ab, der einer OID zugeordnet ist. Die Abfrage wird für einen bestimmten benannten Wert erstellt, der einer OID, einem Funktionsnamen und einem Codierungstyp zugeordnet ist. Die Funktion kann den Typ des abgefragten Werts, den Wert, sich selbst oder beides zurückgeben.

Syntax

BOOL CryptGetOIDFunctionValue(
  [in]      DWORD   dwEncodingType,
  [in]      LPCSTR  pszFuncName,
  [in]      LPCSTR  pszOID,
  [in]      LPCWSTR pwszValueName,
  [out]     DWORD   *pdwValueType,
  [out]     BYTE    *pbValueData,
  [in, out] DWORD   *pcbValueData
);

Parameter

[in] dwEncodingType

Gibt den abzugleichenden Codierungstyp an. Derzeit werden nur X509_ASN_ENCODING und PKCS_7_ASN_ENCODING verwendet. In Zukunft können jedoch weitere Codierungstypen hinzugefügt werden. Um beide aktuellen Codierungstypen abzugleichen, verwenden Sie X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pszFuncName

Ein Zeiger auf die NULL-endende Zeichenfolge, die den Namen des OID-Funktionssatzes enthält.

[in] pszOID

Wenn das Wort mit hoher Ordnung der OID ungleich null ist, ist pszOID ein Zeiger auf eine null-endende OID-Zeichenfolge wie "2.5.29.1" oder eine ASCII-Zeichenfolge mit NULL-Beendigung, z. B. "file". Wenn das Wort mit hoher Ordnung der OID null ist, gibt das Wort mit niedriger Ordnung den numerischen Bezeichner an, der als Objektbezeichner verwendet werden soll.

[in] pwszValueName

Ein Zeiger auf eine unicode-Zeichenfolge mit Null-Endung, die den Namen des abzufragten Werts enthält.

[out] pdwValueType

Ein Zeiger auf eine Variable, um den Typ des Werts zu empfangen. Der typ, der über diesen Parameter zurückgegeben wird, ist einer der folgenden:

Wert Bedeutung
REG_DWORD
Eine 32-Bit-Zahl.
REG_EXPAND_SZ
Eine Unicode-Zeichenfolge, die nicht aufgeklärte Verweise auf Umgebungsvariablen wie "%PATH%" enthält. Anwendungen sollten sicherstellen, dass die Zeichenfolge ein endendes NULL-Zeichen aufweist, bevor sie verwendet wird. Ausführliche Informationen dazu, wann die Zeichenfolge kein beendendes NULL-Zeichen aufweist, finden Sie unter RegQueryValueEx.
REG_MULTI_SZ
Ein Array von Unicode-Zeichenfolgen, die null enden. Anwendungen sollten sicherstellen, dass das Array ordnungsgemäß mit zwei NULL-Zeichen beendet wird, bevor es verwendet wird. Ausführliche Informationen dazu, wann das Array nicht durch zwei NULL-Zeichen beendet wird, finden Sie unter RegQueryValueEx.
REG_SZ
Eine Unicode-Zeichenfolge. Anwendungen sollten sicherstellen, dass die Zeichenfolge ein endendes NULL-Zeichen aufweist, bevor sie verwendet wird. Ausführliche Informationen dazu, wann die Zeichenfolge kein beendendes NULL-Zeichen aufweist, finden Sie unter RegQueryValueEx.
 

Der pdwValueType-Parameter kann NULL sein, wenn kein zurückgegebener Typ erforderlich ist.

[out] pbValueData

Ein Zeiger auf einen Puffer, um den wert zu empfangen, der dem parameter pwszValueName zugeordnet ist. Der Puffer muss groß genug sein, um das abschließende NULL-Zeichen zu enthalten. Dieser Parameter kann NULL sein, wenn zurückgegebene Daten nicht erforderlich sind.

Dieser Parameter kann auch NULL sein, um die Größe des Puffers für die Speicherbelegung zu ermitteln. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.

[in, out] pcbValueData

Ein Zeiger auf ein DWORD , der die Größe des Puffers in Bytes angibt, auf den pbValueData verweist.

In den meisten Fällen enthält der in *pcbValueData zurückgegebene Wert die Größe des abschließenden NULL-Zeichens in der Zeichenfolge. Informationen zu Situationen, in denen das NULL-Zeichen nicht enthalten ist, finden Sie im Abschnitt Hinweise von RegQueryValueEx.

Hinweis Bei der Verarbeitung der im Puffer zurückgegebenen Daten müssen Anwendungen die tatsächliche Größe der zurückgegebenen Daten verwenden. Die tatsächliche Größe kann etwas kleiner als die Größe des bei der Eingabe angegebenen Puffers sein. (Bei der Eingabe werden Puffergrößen in der Regel groß genug angegeben, um sicherzustellen, dass die größtmöglichen Ausgabedaten in den Puffer passen.) Bei der Ausgabe wird die Variable aktualisiert, auf die dieser Parameter verweist, um die tatsächliche Größe der in den Puffer kopierten Daten widerzuspiegeln.
 

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ungleich null (TRUE) zurück.

Wenn die Funktion fehlschlägt, gibt sie null (FALSE) zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Diese Funktion weist den folgenden Fehlercode auf.

Wert BESCHREIBUNG
ERROR_MORE_DATA
Wenn der vom pbValueData-Parameter angegebene Puffer nicht groß genug ist, um die zurückgegebenen Daten zu speichern, legt die Funktion den ERROR_MORE_DATA Code fest und speichert die erforderliche Puffergröße in Bytes in der Variablen, auf die von pcbValueData verwiesen wird.

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 Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

OID-Unterstützungsfunktionen