CryptGetOIDFunctionValue 函式 (wincrypt.h)
CryptGetOIDFunctionValue函式會查詢與 OID 相關聯的值。 查詢會針對與 OID、函式名稱和編碼類型相關聯的特定具名值進行。 函式可以傳回查詢值、值、本身或兩者的類型。
語法
BOOL CryptGetOIDFunctionValue(
[in] DWORD dwEncodingType,
[in] LPCSTR pszFuncName,
[in] LPCSTR pszOID,
[in] LPCWSTR pwszValueName,
[out] DWORD *pdwValueType,
[out] BYTE *pbValueData,
[in, out] DWORD *pcbValueData
);
參數
[in] dwEncodingType
指定要比對的編碼類型。 目前只會使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING;不過,未來可能會新增其他編碼類型。 若要比對目前的編碼類型,請使用 X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。
[in] pszFuncName
包含 OID 函數集名稱之 Null 終止字串的指標。
[in] pszOID
如果 OID 的高序單字為非零, pszOID 是以 Null 結尾的 OID 字串指標,例如 「2.5.29.1」 或以 Null 結尾的 ASCII 字串,例如 「file」。如果 OID 的高序單字為零,則低序字會指定要當做物件識別碼使用的數值識別碼。
[in] pwszValueName
Null 終止 Unicode 字串的指標,其中包含要查詢之值的名稱。
[out] pdwValueType
要接收值型別之變數的指標。 透過此參數傳回的類型將是下列其中一項。
值 | 意義 |
---|---|
|
32 位數位。 |
|
Unicode 字串,其中包含環境變數的未展開參考,例如 「%PATH%」。 應用程式應該先確定字串具有終止的 Null 字元,然後再使用它。 如需字串何時沒有終止 Null 字元的詳細資訊,請參閱 RegQueryValueEx。 |
|
Null 終止 Unicode 字串的陣列。 應用程式應該先確定陣列在使用之前,會以兩個 Null 字元正確終止。 如需陣列何時未以兩個 Null 字元終止的詳細資訊,請參閱 RegQueryValueEx。 |
|
Unicode 字串。 應用程式應該先確定字串具有終止的 Null 字元,然後再使用它。 如需字串何時沒有終止 Null 字元的詳細資訊,請參閱 RegQueryValueEx。 |
如果不需要傳回的類型, pdwValueType 參數可以是 Null 。
[out] pbValueData
緩衝區的指標,用來接收與 pwszValueName 參數相關聯的值。 緩衝區必須夠大,才能包含終止 的 Null 字元。 如果不需要傳回的資料,此參數可以是 Null 。
此參數也可以是 Null ,以尋找用於記憶體配置之緩衝區的大小。 如需詳細資訊,請參閱 擷取未知長度的資料。
[in, out] pcbValueData
DWORD的指標,指定pbValueData所指向之緩衝區的大小,以位元組為單位。
在大部分情況下,*sqlValueData 中傳回的值會包含字串中終止 Null 字元的大小。 如需不包含 Null 字元的情況相關資訊,請參閱 RegQueryValueEx的一節。
傳回值
如果函式成功,函式會傳回非零 (TRUE) 。
如果函式失敗,它會傳回零 (FALSE) 。 如需擴充的錯誤資訊,請呼叫 GetLastError。
此函式具有下列錯誤碼。
值 | 描述 |
---|---|
|
如果 pbValueData 參數指定的緩衝區不夠大,無法保存傳回的資料,函式會設定ERROR_MORE_DATA程式碼,並將所需的緩衝區大小以位元組為單位儲存到 由Data指向的變數中。 |
規格需求
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |