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 または次の値を指定できます。
値 | 意味 |
---|---|
|
キー サービス プロバイダーにユーザー インターフェイスが表示されないことを要求します。 |
[in, optional] hWnd
表示するユーザー インターフェイスの親ウィンドウ (存在する場合) を処理します。
[in] pStreamInfo
暗号化された データを受 け取るユーザー定義コールバック関数のアドレスと、ユーザー定義コンテキスト データへのポインターを含むNCRYPT_PROTECT_STREAM_INFO構造体へのポインター。
[out] phStream
ストリーム オブジェクト ハンドルへのポインター。
戻り値
関数の成功または失敗を示す状態コードを返します。 可能なリターン コードには、次のものが含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
関数は成功しました。 |
|
dwFlags パラメーターには、0 (0)、 NCRYPT_MACHINE_KEY_FLAG、または NCRYPT_SILENT_FLAGを含める必要があります。 |
|
hDescriptor パラメーターで指定されたハンドルが無効です。 |
|
phStream パラメーターと pStreamInfo パラメーターを NULL にすることはできません。
pStreamInfo パラメーターが指すNCRYPT_PROTECT_STREAM_INFO構造体の pfnStreamOutput メンバーが指すコールバック関数を NULL にすることはできません。 |
|
データ ストリームを割り当てるためのメモリが不足していました。 |
注釈
NCryptStreamOpenToProtect 関数は、大きなメッセージの暗号化に使用できる内部ストリーム オブジェクトを作成します。 オブジェクトを直接使用することはできません。 代わりに、この関数によって返されるオブジェクト ハンドルを使用する必要があります。
NCryptStreamUpdate 関数を呼び出す前に、この関数を呼び出します。 大きなファイルを暗号化する場合は、ブロックごとにファイル ブロックを進めるループで NCryptStreamUpdate を使用し、各ブロックが進むにつれて各ブロックを暗号化し、各ブロックが完了したときにコールバックに通知します。 詳細については、「 NCryptStreamUpdate」を参照してください。
NCryptStreamOpenToProtect 関数は、暗号化されていない保護記述子ルール文字列をストリーム オブジェクト ヘッダーに書き込みます。これにより、NCryptStreamOpenToUnprotect は、暗号化時に使用されるのと同じ保護機能を使用して、ストリームの暗号化解除を開始できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ncryptprotect.h |
Library | NCrypt.lib |
[DLL] | NCrypt.dll |