CryptRegisterOIDFunction-Funktion (wincrypt.h)
Die Funktion CryptRegisterOIDFunction registriert eine DLL, die die funktion enthält, die für den angegebenen Codierungstyp, Funktionsnamen und Objektbezeichner (Object Identifier, OID) aufgerufen werden soll.
Standardmäßig werden neue Funktionsnamen am Ende der Liste installiert. Um eine neue Funktion vor den installierten Funktionen zu registrieren, rufen Sie die Funktion CryptSetOIDFunctionValue auf, wobei dwValueType auf REG_DWORD und pwszValueName auf CRYPT_OID_REG_FLAGS_VALUE_NAME festgelegt ist.
CRYPT_OID_REG_FLAGS_VALUE_NAME wird als L"CryptFlags" definiert.
Zusätzlich zum Registrieren einer DLL kann der Name der aufzurufenden Funktion überschrieben werden. Beispielsweise kann der Parameter pszFuncName auf CryptDllEncodeObject und der parameter pszOverrideFuncName auf MyEncodeXyz festgelegt werden. Auf die neue Form von CryptDllEncodeObject kann dann mit dem Namen MyEncodeXyz verwiesen werden. Dadurch kann eine DLL mehrere OID-Funktionen für denselben Funktionsnamen exportieren, ohne eine eigene OID-Verteilerfunktion zwischenspeichern zu müssen.
Syntax
BOOL CryptRegisterOIDFunction(
[in] DWORD dwEncodingType,
[in] LPCSTR pszFuncName,
[in] LPCSTR pszOID,
[in] LPCWSTR pwszDll,
[in] LPCSTR pszOverrideFuncName
);
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 Folgendes:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pszFuncName
Name der Funktion, die registriert wird.
[in] pszOID
OID der zu registrierenden Funktion. Wenn das Wort mit hoher Ordnung der OID ungleich null ist, ist pszOID ein Zeiger auf eine OID-Zeichenfolge wie "2.5.29.1" oder eine ASCII-Zeichenfolge wie "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] pwszDll
Name der zu registrierenden DLL-Datei. Sie kann Umgebungsvariablenzeichenfolgen enthalten, die vor dem Laden der DLL mithilfe der Funktion ExpandEnvironmentStrings erweitert werden sollen.
[in] pszOverrideFuncName
Zeichenfolge, die einen Namen für die in die DLL exportierte Funktion angibt. Wenn pszOverrideFuncNameNULL ist, wird der von pszFuncName angegebene Funktionsname verwendet.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich null (TRUE).
Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE).
Hinweise
Wenn Sie die Verwendung einer OID-Funktion abgeschlossen haben, heben Sie die Registrierung auf, indem Sie die Funktion CryptUnregisterOIDFunction aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Crypt32.lib |
DLL | Crypt32.dll |