ITpmVirtualSmartCardManager::CreateVirtualSmartCard 方法 (tpmvscmgr.h)
使用指定的參數建立 TPM 虛擬智慧卡。
語法
HRESULT CreateVirtualSmartCard(
[in] LPCWSTR pszFriendlyName,
[in] BYTE bAdminAlgId,
[in] const BYTE *pbAdminKey,
[in] DWORD cbAdminKey,
[in, optional] const BYTE *pbAdminKcv,
[in] DWORD cbAdminKcv,
[in, optional] const BYTE *pbPuk,
[in] DWORD cbPuk,
[in] const BYTE *pbPin,
[in] DWORD cbPin,
[in] BOOL fGenerate,
[in, optional] ITpmVirtualSmartCardManagerStatusCallback *pStatusCallback,
[out] LPWSTR *ppszInstanceId,
[out] BOOL *pfNeedReboot
);
參數
[in] pszFriendlyName
智慧卡閱讀機節點的顯示名稱。 這會顯示在 裝置管理員 中,但它不是智慧卡資源管理員 (SCRM) 所見的讀取器名稱。
[in] bAdminAlgId
管理金鑰的演演算法識別碼。 目前,若要使用收件匣 GIDS minidriver,此值應該在 CBC 鏈結模式中VSC_DEFAULT_ADMIN_ALGORITHM_ID (具有 ISO/IEC 9797 填補方法 2 的 3 鍵三鍵 DES) 。
[in] pbAdminKey
位元組陣列的指標,其中包含要建立之虛擬智慧卡的管理密鑰。
[in] cbAdminKey
pbAdminKey 參數所指向位元組陣列的大小,以位元組為單位。
[in, optional] pbAdminKcv
位元組陣列的指標,其中包含管理金鑰的金鑰檢查值。 使用管理金鑰加密零區塊時,金鑰檢查值會定義為輸出 BLOB 的前 3 個字節。 如果未提供金鑰檢查值,系統不會檢查系統管理金鑰的完整性。
[in] cbAdminKcv
pbAdminKcv 參數所指向位元組陣列的大小,以位元組為單位。
[in, optional] pbPuk
位元組陣列的指標,其中包含虛擬智慧卡的 PIN 解除鎖定金鑰 (PUK) 值。 它通常是一連串的 ASCII 字元,長度最少為 8 個字元。 如果未提供PUK,則會在沒有PUK角色的情況下建立虛擬智慧卡,而是透過系統管理員角色使用挑戰/回應型 PIN 重設。
[in] cbPuk
pbPuk 參數所指向位元組數位的大小,以位元組為單位。
[in] pbPin
位元組陣列的指標,其中包含虛擬智慧卡的 PIN 值。 它通常是一連串的 ASCII 字元,長度上限為 8 個字元,最多 127 個字元。
[in] cbPin
pbPin 參數所指向位元組數位的大小,以位元組為單位。
[in] fGenerate
指出虛擬智慧卡是否需要布建基底 CSP 和智慧卡 KSP 所需的所有必要檔案。
[in, optional] pStatusCallback
ITpmVirtualSmartCardManagerStatusCallback 介面的指標。 TPM 虛擬智慧卡管理員會使用此回呼介面來傳達虛擬智慧卡建立期間的進度或錯誤。 如果 pStatusCallback 參數為 NULL,作業完成之前不會向客戶端回報任何進度。
[out] ppszInstanceId
Unicode 緩衝區指標的指標,以接收所建立虛擬智慧卡的實例標識碼。
[out] pfNeedReboot
布爾值的指標,以接收要求作業是否需要重新啟動計算機。
傳回值
如果方法成功,則會傳回 S_OK。
如果方法失敗,它會傳回 Win32 錯誤碼。
備註
當方法成功時, ppszInstanceId 參數會指向 Unicode 緩衝區,其中包含新建立 TPM 虛擬智慧卡讀取器的實例標識碼。 當您完成使用緩衝區時,呼叫端必須呼叫 CoTaskMemFree 函式,藉由呼叫 CoTaskMemFree 函式來釋放用戶端上的緩衝區,如 COM 記憶體管理規則中的指示。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | tpmvscmgr.h |
程式庫 | Vscmgr.lib |