NCryptStreamOpenToProtect 関数 (ncryptprotect.h)

NCryptStreamOpenToProtect 関数は、特定の保護記述子に大量のデータを暗号化するために使用できるストリーム オブジェクトを開きます。 NCryptStreamUpdate を呼び出してコンテンツを暗号化します。 キーやパスワードなどの小さなメッセージを暗号化するには、 NCryptProtectSecret を呼び出します。

構文

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

パラメーター

[in] hDescriptor

保護記述子のハンドル。 NCryptCreateProtectionDescriptor を呼び出してハンドルを作成します。

dwFlags

フラグには、0 または次の値を指定できます。

意味
NCRYPT_SILENT_FLAG
キー サービス プロバイダーにユーザー インターフェイスが表示されないことを要求します。

[in, optional] hWnd

表示するユーザー インターフェイスの親ウィンドウ (存在する場合) を処理します。

[in] pStreamInfo

暗号化された データを受 け取るユーザー定義コールバック関数のアドレスと、ユーザー定義コンテキスト データへのポインターを含むNCRYPT_PROTECT_STREAM_INFO構造体へのポインター。

[out] phStream

ストリーム オブジェクト ハンドルへのポインター。

戻り値

関数の成功または失敗を示す状態コードを返します。 可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
ERROR_SUCCESS
関数は成功しました。
NTE_BAD_FLAGS
dwFlags パラメーターには、0 (0)、 NCRYPT_MACHINE_KEY_FLAG、または NCRYPT_SILENT_FLAGを含める必要があります。
NTE_INVALID_HANDLE
hDescriptor パラメーターで指定されたハンドルが無効です。
NTE_INVALID_PARAMETER
phStream パラメーターと pStreamInfo パラメーターを NULL にすることはできません。

pStreamInfo パラメーターが指すNCRYPT_PROTECT_STREAM_INFO構造体の pfnStreamOutput メンバーが指すコールバック関数を NULL にすることはできません。

NTE_NO_MEMORY
データ ストリームを割り当てるためのメモリが不足していました。

注釈

NCryptStreamOpenToProtect 関数は、大きなメッセージの暗号化に使用できる内部ストリーム オブジェクトを作成します。 オブジェクトを直接使用することはできません。 代わりに、この関数によって返されるオブジェクト ハンドルを使用する必要があります。

NCryptStreamUpdate 関数を呼び出す前に、この関数を呼び出します。 大きなファイルを暗号化する場合は、ブロックごとにファイル ブロックを進めるループで NCryptStreamUpdate を使用し、各ブロックが進むにつれて各ブロックを暗号化し、各ブロックが完了したときにコールバックに通知します。 詳細については、「 NCryptStreamUpdate」を参照してください。

NCryptStreamOpenToProtect 関数は、暗号化されていない保護記述子ルール文字列をストリーム オブジェクト ヘッダーに書き込みます。これにより、NCryptStreamOpenToUnprotect は、暗号化時に使用されるのと同じ保護機能を使用して、ストリームの暗号化解除を開始できます。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ncryptprotect.h
Library NCrypt.lib
[DLL] NCrypt.dll

こちらもご覧ください

CNG DPAPI 関数

NCRYPT_PROTECT_STREAM_INFO

NCryptCreateProtectionDescriptor

NCryptStreamClose

NCryptStreamOpenToUnprotect

NCryptStreamUpdate