CryptGetKeyIdentifierProperty 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
 
CryptGetKeyIdentifierProperty 會從指定的密鑰標識碼取得特定屬性。

語法

BOOL CryptGetKeyIdentifierProperty(
  [in]      const CRYPT_HASH_BLOB *pKeyIdentifier,
  [in]      DWORD                 dwPropId,
  [in]      DWORD                 dwFlags,
  [in]      LPCWSTR               pwszComputerName,
  [in]      void                  *pvReserved,
  [out]     void                  *pvData,
  [in, out] DWORD                 *pcbData
);

參數

[in] pKeyIdentifier

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

[in] dwPropId

識別要擷取的屬性。 dwPropId 的值會決定 pvData 參數的類型和內容。 您可以使用任何憑證屬性識別碼。

[in] dwFlags

您可以使用下列旗標。 它們可以與位 OR 運算結合。

意義
CRYPT_KEYID_MACHINE_FLAG
如果 pwszComputerName 為 NULL) 或遠端電腦 (pwszComputerName 不是 NULL) ,則搜尋 LocalMachine (的密鑰標識符清單。 如需詳細資訊,請參閱 pwszComputerName
CRYPT_KEYID_ALLOC_FLAG
呼叫 LocalAlloc () 函式來配置 pvData 的記憶體。 *pvData 會使用所配置記憶體的指標來更新。 必須呼叫 LocalFree () ,才能釋放配置的記憶體。

[in] pwszComputerName

要搜尋之遠端電腦名稱的指標。 如果已設定CRYPT_KEYID_MACHINE_FLAG旗標,請搜尋遠端計算機中的金鑰標識碼清單。 如果要搜尋本機計算機,而不是遠端計算機,請將 pwszComputerName 設定為 NULL

[in] pvReserved

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

[out] pvData

緩衝區的指標,用來接收 由 dwPropId 決定的數據。 pvData 結構中的欄位所指向的專案遵循 結構。 因此, 包含在 azureData 中的大小可能會超過 結構的大小。

如果 dwPropIdCERT_KEY_PROV_INFO_PROP_ID,pvData 會指向包含密鑰標識碼屬性的CRYPT_KEY_PROV_INFO結構。

如果未CERT_KEY_PROV_INFO_PROP_ID dwPropId,pvData 會指向包含索引鍵標識碼屬性的位元組陣列。

若要取得此資訊的大小以供記憶體配置之用,當未設定CRYPT_KEYID_ALLOC_FLAG時,此參數可以是 NULL 。 如需詳細資訊,請參閱 擷取未知長度的數據

設定CRYPT_KEYID_ALLOC_FLAG時, pvData 是即將更新之緩衝區的指標位址。 因為記憶體已配置,而且其指標會儲存在 *pvData所以 pvData 不得為 NULL

[in, out] pcbData

DWORD 的指標,其中包含 pvData 參數所指向之緩衝區的大小,以位元組為單位。 當函式傳回時, DWORD 會包含儲存在緩衝區中的位元元組數目。 由CRYPT_KEY_PROV_INFO結構所指向之變數中包含的大小可以指出大於CRYPT_KEY_PROV_INFO結構的大小,因為結構可以包含輔助數據的指標。 此大小是結構和所有輔助數據所需的大小總和。

設定CRYPT_KEYID_ALLOC_FLAG時, CRYPT_KEYID_ALLOC_FLAG會 更新的 DWORD 指標是其位址。

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

傳回值

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

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

規格需求

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

另請參閱

CryptEnumKeyIdentifierProperties

CryptSetKeyIdentifierProperty

金鑰識別碼函式