PFND3D11_1DDI_CREATECRYPTOSESSION回呼函式 (d3d10umddi.h)
建立密碼編譯會話,以加密傳送至顯示迷你埠驅動程序的視訊內容。
語法
PFND3D11_1DDI_CREATECRYPTOSESSION Pfnd3d111DdiCreatecryptosession;
HRESULT Pfnd3d111DdiCreatecryptosession(
D3D10DDI_HDEVICE hDevice,
const D3D11_1DDIARG_CREATECRYPTOSESSION *pCreateData,
D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
D3D11_1DDI_HRTCRYPTOSESSION hRTCryptoSession
)
{...}
參數
hDevice
顯示裝置的句柄 (圖形內容) 。
pCreateData
D3D11_1DDIARG_CREATECRYPTOSESSION 結構的指標。 這個結構會指定要建立的密碼編譯會話屬性。
hCryptoSession
密碼編譯會話之驅動程式私人數據的句柄。 如需詳細資訊,請參閱<備註>一節。
hRTCryptoSession
驅動程式在回呼 Direct3D 運行時間時應該使用的密碼編譯會話句柄。
傳回值
傳回下列其中一值:
傳回碼 | 描述 |
---|---|
S_OK | 已成功建立已驗證的通道。 |
D3DDDIERR_DEVICEREMOVED | 已移除圖形配接器。 |
D3DDDIERR_UNSUPPORTEDCRYPTO | 已指定譯碼配置檔不支援的密碼編譯類型。 |
E_OUTOFMEMORY | 記憶體無法完成作業。 |
備註
Direct3D 執行時間會呼叫 CreateCryptoSession 來建立密碼編譯會話,讓運行時間用來管理會話密鑰,並針對儲存在受保護記憶體中的視訊內容執行密碼編譯作業。
運行時間會在呼叫驅動程式的 CalcPrivateCryptoSessionSize 之後呼叫 CreateCryptoSession,以位元組為單位來判斷驅動程式對密碼編譯會話所需的私人數據大小。 運行時間會為驅動程式配置此私人數據的記憶體。 驅動程式會使用此記憶體來儲存與密碼編譯會話相關的私人數據。
當運行時間呼叫 CreateCryptoSession 時,它會將句柄傳遞至 hCryptoSession 參數中的私人數據記憶體。 這個句柄實際上是記憶體的指標。
驅動程式必須追蹤用來建立密碼編譯會話之顯示裝置的句柄。 如果這些呼叫中指定的顯示裝置與用來建立密碼編譯會話的顯示裝置不同,驅動程式應該會失敗使用此所建立的密碼編譯會話的所有後續呼叫,例如 NegotiateCryptoSessionKeyExchange。
如果D3D11_1DDIARG_CREATECRYPTOSESSION結構的DecodeProfile成員設定為 NULL_GUID,則密碼編譯會話將不會用於 DirectX 影片加速 (DXVA) 譯碼。 如果 DecodeProfile 未設定為 NULL_GUID,則如果CryptoType 成員設定為譯碼配置檔不支援的密碼編譯類型,驅動程式應該會失敗,並D3DDDIERR_UNSUPPORTEDCRYPTO呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
最低支援的伺服器 | Windows Server 2012 |
目標平台 | 桌面 |
標頭 | d3d10umddi.h (include D3d10umddi.h) |