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

要接收值型別之變數的指標。 透過此參數傳回的類型將是下列其中一項。

意義
REG_DWORD
32 位數位。
REG_EXPAND_SZ
Unicode 字串,其中包含環境變數的未展開參考,例如 「%PATH%」。 應用程式應該先確定字串具有終止的 Null 字元,然後再使用它。 如需字串何時沒有終止 Null 字元的詳細資訊,請參閱 RegQueryValueEx
REG_MULTI_SZ
Null 終止 Unicode 字串的陣列。 應用程式應該先確定陣列在使用之前,會以兩個 Null 字元正確終止。 如需陣列何時未以兩個 Null 字元終止的詳細資訊,請參閱 RegQueryValueEx
REG_SZ
Unicode 字串。 應用程式應該先確定字串具有終止的 Null 字元,然後再使用它。 如需字串何時沒有終止 Null 字元的詳細資訊,請參閱 RegQueryValueEx
 

如果不需要傳回的類型, pdwValueType 參數可以是 Null

[out] pbValueData

緩衝區的指標,用來接收與 pwszValueName 參數相關聯的值。 緩衝區必須夠大,才能包含終止 的 Null 字元。 如果不需要傳回的資料,此參數可以是 Null

此參數也可以是 Null ,以尋找用於記憶體配置之緩衝區的大小。 如需詳細資訊,請參閱 擷取未知長度的資料

[in, out] pcbValueData

DWORD的指標,指定pbValueData所指向之緩衝區的大小,以位元組為單位。

在大部分情況下,*sqlValueData 中傳回的值會包含字串中終止 Null 字元的大小。 如需不包含 Null 字元的情況相關資訊,請參閱 RegQueryValueEx的一節。

注意 處理緩衝區中傳回的資料時,應用程式必須使用傳回的資料實際大小。 實際大小可能會稍微小於輸入中指定的緩衝區大小。 (輸入時,緩衝區大小通常會指定夠大,以確保最大可能的輸出資料會符合 buffer。) On 輸出中,此參數所指向的變數會更新,以反映複製到緩衝區的實際資料大小。
 

傳回值

如果函式成功,函式會傳回非零 (TRUE) 。

如果函式失敗,它會傳回零 (FALSE) 。 如需擴充的錯誤資訊,請呼叫 GetLastError

此函式具有下列錯誤碼。

描述
ERROR_MORE_DATA
如果 pbValueData 參數指定的緩衝區不夠大,無法保存傳回的資料,函式會設定ERROR_MORE_DATA程式碼,並將所需的緩衝區大小以位元組為單位儲存到 由Data指向的變數中。

規格需求

   
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

OID 支援函式