CertCreateContext 函式 (wincrypt.h)
CertCreateContext 函式會從編碼的位元組建立指定的內容。 建立的內容不包含任何擴充屬性。
語法
const void * CertCreateContext(
[in] DWORD dwContextType,
[in] DWORD dwEncodingType,
[in] const BYTE *pbEncoded,
[in] DWORD cbEncoded,
[in] DWORD dwFlags,
[in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);
參數
[in] dwContextType
指定可建立的內容。 例如,若要建立 憑證內容,請將 dwContextType 設定為 CERT_STORE_CERTIFICATE_CONTEXT。
下表顯示目前定義的內容類型旗標。
值 | 意義 |
---|---|
|
憑證內容。 |
|
CRL 內容。 |
|
CTL 內容。 |
[in] dwEncodingType
指定使用的編碼類型。 目前只會使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING;不過,未來可能會新增其他編碼類型。 針對目前的編碼類型,請使用:
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。
[in] pbEncoded
緩衝區的指標,其中包含要複製的現有編碼內容內容。
[in] cbEncoded
pbEncoded 緩衝區的大小,以位元組為單位。
[in] dwFlags
下列旗標值已定義,而且可以使用位 OR 運算來結合。
值 | 意義 |
---|---|
|
建立的內容會直接指向 pbEncoded 所指向的內容,而不是配置的複本。 |
|
函式會建立具有已排序項目的內容。 目前,此旗標僅適用於 CTL 內容。
針對 CCL,傳回之CTL_INFO結構的 cCTLEntry 成員一律為零。 必須呼叫 CertFindSubjectInSortedCTL 和 CertEnumSubjectInSortedCTL 來尋找或列舉 CTL 專案。 |
|
根據預設,建立 CTL 內容時,就會建立其 SignedData 訊息的 HCRYTPMSG 句柄。 這個旗標可以設定為藉由建立這個句柄來改善效能。 只有在 dwContextType CERT_STORE_CTL_CONTEXT時,才能使用此旗標。 |
|
根據預設,建立 CTL 內容時,其項目會譯碼。 設定此旗標時,不會譯碼專案,且效能會改善。 只有在 dwContextType CERT_STORE_CTL_CONTEXT時,才能使用此旗標。 |
[in, optional] pCreatePara
CERT_CREATE_CONTEXT_PARA 結構的指標。
如果 pCreatePara 及其 pfnFree 成員都是非 NULL,pfnFree 成員會用來釋放 pvFree 成員所指定的記憶體。 如果 pvFree 成員為 NULL,pfnFree 成員會用來釋放 pbEncoded 指標。
如果 pCreatePara 或其 pfnFree 成員為 NULL,則不會嘗試釋放 pbEncoded。
傳回值
如果函式成功,則傳回值是新建立內容的指標。 必須呼叫 pCreatePara 的 pvFree 成員,以釋放建立的內容。
如果函式失敗,則傳回值為 NULL。 如需擴充錯誤資訊,請呼叫 GetLastError。
如果 GetLastError 傳回 ERROR_CANCELLED,這表示 PFN_CERT_CREATE_CONTEXT_SORT_FUNC 回呼函式傳回 FALSE 以停止排序。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |