NCryptStreamOpenToUnprotect 函式 (ncryptprotect.h)

NCryptStreamOpenToUnprotect 函式會開啟數據流物件,可用來將大量數據解密為用於加密的相同保護描述元。 呼叫 NCryptStreamUpdate 來執行解密。 若要解密較小的訊息,例如密鑰和密碼,請呼叫 NCryptUnprotectSecret

語法

SECURITY_STATUS NCryptStreamOpenToUnprotect(
  [in]           NCRYPT_PROTECT_STREAM_INFO *pStreamInfo,
                 DWORD                      dwFlags,
  [in, optional] HWND                       hWnd,
  [out]          NCRYPT_STREAM_HANDLE       *phStream
);

參數

[in] pStreamInfo

NCRYPT_PROTECT_STREAM_INFO結構的指標,其中包含使用者定義回呼函式的位址,以接收解密的數據,以及使用者定義內容數據的指標。

dwFlags

旗標,指定金鑰服務提供者的其他資訊。 這可以是零或下列值。

意義
NCRYPT_SILENT_FLAG
要求金鑰服務提供者未顯示使用者介面。

[in, optional] hWnd

要顯示之使用者介面的父視窗句柄。如果有的話。

[out] phStream

解密數據流之句柄的指標。

傳回值

傳回狀態代碼,指出函式的成功或失敗。 可能的傳回碼包括但不限於下列專案。

傳回碼 Description
ERROR_SUCCESS
函式成功。
NTE_BAD_FLAGS
dwFlags 參數必須包含零 (0) 或 NCRYPT_SILENT_FLAG
NTE_INVALID_PARAMETER
phStreampStreamInfo 參數不可為 NULL

pStreamInfo 參數所指向之NCRYPT_PROTECT_STREAM_INFO結構之 pfnStreamOutput 成員所指向的回調函式不能是 NULL

NTE_NO_MEMORY
記憶體不足,無法配置數據流。

備註

NCryptStreamOpenToUnprotect 函式會建立可用來加密大型訊息的內部數據流物件。 您無法直接使用物件。 您必須改用這個函式所傳回的物件句柄。

先呼叫此函式,再呼叫 NCryptStreamUpdate 函式。 如果您要加密大型檔案,請在迴圈中使用 NCryptStreamUpdate ,該迴圈會逐區塊前進,並在每個區塊完成時加密每個區塊,並通知回呼。 如需詳細資訊,請參閱 NCryptStreamUpdate

NCryptStreamOpenToUnprotect 函式會從數據流標頭擷取未加密的保護描述項規則字串。 規則字串會由 NCryptStreamOpenToUnprotect 函式放在標頭中。

規格需求

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

另請參閱

CNG DPAPI 函式

NCRYPT_PROTECT_STREAM_INFO

NCryptStreamClose

NCryptStreamOpenToProtect

NCryptStreamUpdate