CryptRegisterOIDFunction 関数 (wincrypt.h)
CryptRegisterOIDFunction 関数は、指定されたエンコード型、関数名、およびオブジェクト識別子 (OID) に対して呼び出される関数を含む DLL を登録します。
既定では、新しい関数名はリストの末尾にインストールされます。 インストールされている関数の前に新しい関数を登録するには、dwValueType が REG_DWORD に設定され、pwszValueName が CRYPT_OID_REG_FLAGS_VALUE_NAME に設定されている CryptSetOIDFunctionValue 関数を呼び出します。
CRYPT_OID_REG_FLAGS_VALUE_NAMEは L"CryptFlags" として定義されます。
DLL の登録に加えて、呼び出される関数の名前をオーバーライドできます。 たとえば、 pszFuncName パラメーターを CryptDllEncodeObject に設定し、 pszOverrideFuncName パラメーターを MyEncodeXyz に設定できます。 その後、MyEncodeXyz という名前を使用して、CryptDllEncodeObject の新しい形式を参照できます。 これにより、DLL は、独自の OID ディスパッチャー関数を入れ替えることなく、同じ関数名に対して複数の OID 関数をエクスポートできます。
構文
BOOL CryptRegisterOIDFunction(
[in] DWORD dwEncodingType,
[in] LPCSTR pszFuncName,
[in] LPCSTR pszOID,
[in] LPCWSTR pwszDll,
[in] LPCSTR pszOverrideFuncName
);
パラメーター
[in] dwEncodingType
照合するエンコードの種類を指定します。 現在、X509_ASN_ENCODINGとPKCS_7_ASN_ENCODINGのみが使用されています。ただし、今後、エンコードの種類が追加される可能性があります。 現在のエンコードの種類を一致させるためには、次の値を使用します。
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。
[in] pszFuncName
登録されている関数の名前。
[in] pszOID
登録する関数の OID。 OID の上位ワードが 0 以外の場合、 pszOID は"2.5.29.1" などの OID 文字列または "file" などの ASCII 文字列へのポインターです。OID の上位ワードが 0 の場合、下位ワードはオブジェクト識別子として使用される数値識別子を指定します。
[in] pwszDll
登録する DLL ファイルの名前。 DLL を読み込む前に ExpandEnvironmentStrings 関数を使用して展開する環境変数文字列を含めることができます。
[in] pszOverrideFuncName
DLL でエクスポートされる関数の名前を指定する文字列。 pszOverrideFuncName が NULL の場合は、pszFuncName で指定された関数名が使用されます。
戻り値
関数が成功した場合、戻り値は 0 以外 (TRUE) になります。
関数が失敗した場合、戻り値は 0 (FALSE) になります。
注釈
OID 関数の使用が完了したら、 CryptUnregisterOIDFunction 関数を呼び出して登録を解除します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |