CryptEnumKeyIdentifierProperties 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
 
CryptEnumKeyIdentifierProperties 函式會列舉密鑰標識碼及其屬性。 迴圈中不會呼叫此函式。 相反地,它會在內部迴圈,直到列舉最後一個索引鍵標識碼屬性或回呼函式傳回 FALSE 為止。 如果 dwPropId 為零,或索引鍵標識碼的屬性符合 dwPropId,則會呼叫回呼函式。

語法

BOOL CryptEnumKeyIdentifierProperties(
  [in, optional] const CRYPT_HASH_BLOB     *pKeyIdentifier,
  [in]           DWORD                     dwPropId,
  [in]           DWORD                     dwFlags,
  [in, optional] LPCWSTR                   pwszComputerName,
  [in]           void                      *pvReserved,
  [in, optional] void                      *pvArg,
  [in]           PFN_CRYPT_ENUM_KEYID_PROP pfnEnum
);

參數

[in, optional] pKeyIdentifier

包含金鑰標識碼 之CRYPT_HASH_BLOB 結構的指標。

如果 pKeyIdentifierNULL,函式會列舉所有密鑰標識碼。

如果 pKeyIdentifier 不是 NULL,則只會針對指定的密鑰標識元呼叫回調函式 pfnEnum

[in] dwPropId

指出要列出的屬性標識碼。

如果 dwPropId 設定為零,此函式會呼叫具有所有屬性的回調函式。

如果 dwPropId 不是零,而且 pKeyIdentifierNULL,則只會針對具有指定屬性的密鑰標識元呼叫回呼函式, (將 pfnEnumcProp 參數設定為一個) 。 會略過所有沒有 屬性的金鑰標識碼。

您可以使用任何憑證屬性識別碼。

[in] dwFlags

根據預設,會搜尋 CurrentUser 的金鑰標識碼清單。 如果已設定CRYPT_KEYID_MACHINE_FLAG,如果 pwszComputerName 為 NULL) 或 (搜尋 pwszComputerName 不是 NULL) ,則 LocalMachine (的密鑰標識符清單。 如需詳細資訊,請參閱 pwszComputerName

[in, optional] pwszComputerName

要搜尋之遠端電腦名稱的指標。 如果在 dwFlags 中設定CRYPT_KEYID_MACHINE_FLAG,遠端電腦就會搜尋密鑰標識碼清單。 如果要搜尋本機計算機,而不是遠端計算機, pwszComputerName 會設定為 NULL

[in] pvReserved

保留供日後使用,且必須為 NULL

[in, optional] pvArg

要傳遞至回調函式之數據的指標。 此類型是一個 void,可讓應用程式宣告、定義和初始化結構或自變數,以保存任何資訊。

[in] pfnEnum

應用程式定義回呼函式的指標,針對符合輸入參數的每個索引鍵標識碼項目執行。 如需回呼函式參數的詳細資訊,請參閱 CRYPT_ENUM_KEYID_PROP

傳回值

CryptEnumKeyIdentifierProperties 函式會重複呼叫CRYPT_ENUM_KEYID_PROP回呼函式,直到列舉最後一個密鑰標識碼或回呼函式傳回 FALSE 為止。

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

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

若要繼續列舉,函式會傳回 TRUE

若要停止列舉,函式會傳回 FALSE ,並設定最後一個錯誤碼。

備註

密鑰標識碼可以有與 憑證內容相同的屬性。

範例

如需使用此函式的範例,請參閱 範例 C 程式:使用密鑰標識碼

規格需求

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

另請參閱

基底密碼編譯函式

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty