Share via


WriteEncryptedFileRaw 関数 (winbase.h)

暗号化されたファイルを復元 (インポート) します。 これは、暗号化された状態でファイルを維持しながら、バックアップと復元の機能を実装することを目的とした暗号化されたファイル システム (EFS) 関数のグループの 1 つです。

構文

DWORD WriteEncryptedFileRaw(
  [in]           PFE_IMPORT_FUNC pfImportCallback,
  [in, optional] PVOID           pvCallbackContext,
  [in]           PVOID           pvContext
);

パラメーター

[in] pfImportCallback

インポート コールバック関数へのポインター。 システムはコールバック関数を複数回呼び出し、コールバック関数によってバックアップされたファイルのデータの一部が格納されるバッファーを渡すたびに呼び出されます。 コールバック関数は、ファイル全体が処理されたことを通知すると、復元操作が完了したことをシステムに通知します。 詳細については、「 ImportCallback」を参照してください。

[in, optional] pvCallbackContext

アプリケーション定義および割り当てられたコンテキスト ブロックへのポインター。 コールバック関数がアプリケーション固有のデータにアクセスできるように、システムはこのポインターをパラメーターとしてコールバック関数に渡します。 これは構造体であり、暗号化されたファイルのバックアップ コピーを含むファイルへのハンドルなど、アプリケーションで必要な任意のデータを含めることができます。

[in] pvContext

システム定義コンテキスト ブロックへのポインター。 コンテキスト ブロックは OpenEncryptedFileRaw 関数によって返されます。 変更しないでください。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS

関数が失敗した場合、WinError.h で定義されている 0 以外のエラー コードが返されます。 FORMAT_MESSAGE_FROM_SYSTEM フラグと共に FormatMessage を使用すると、エラーの一般的なテキストの説明を取得できます。

解説

復元されるファイルは暗号化解除されません。暗号化された状態で復元されます。

暗号化されたファイルをバックアップするには、 OpenEncryptedFileRaw を 呼び出してファイルを開きます。 次 に ReadEncryptedFileRaw を呼び出し、アプリケーション定義のエクスポート コールバック関数のアドレスを渡します。 システムは、ファイル全体の内容が読み取られ、バックアップされるまで、このコールバック関数を複数回呼び出します。 バックアップが完了したら、 CloseEncryptedFileRaw を呼び出してリソースを解放し、ファイルを閉じます。 エクスポート コールバック関数を宣言する方法の詳細については、「 ExportCallback 」を参照してください。

暗号化されたファイルを復元するには、ulFlags パラメーターで CREATE_FOR_IMPORTを指定して OpenEncryptedFileRaw を呼び出します。 次 に WriteEncryptedFileRaw を呼び出し、アプリケーション定義のインポート コールバック関数のアドレスを渡します。 システムは、ファイルの内容全体が読み取られ、復元されるまで、このコールバック関数を複数回呼び出します。 復元が完了したら、 CloseEncryptedFileRaw を呼び出してリソースを解放し、ファイルを閉じます。 エクスポート コールバック関数を宣言する方法の詳細については、「 ImportCallback 」を参照してください。

ファイルが、復元先のボリュームよりも小さいスパース割り当てユニット サイズのボリュームからバックアップされたスパース ファイルの場合、ファイルの中央にあるスパース ブロックが大きなブロックと適切に一致せず、関数呼び出しが失敗し、最後 エラー コードERROR_INVALID_PARAMETER設定されます。 スパース割り当てユニット のサイズは、16 クラスターまたは 64 KB のいずれか小さい方です。

この関数は、暗号化されたファイルのみを復元することを目的としています。暗号化されていないファイルの復元については、「 BackupWrite 」を参照してください。

Windows 8、Windows Server 2012 以降では、この関数は次のテクノロジでサポートされています。

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 Transparent Failover (TFO) いいえ
スケールアウト ファイル共有 (SO) を使う SMB 3.0 いいえ
クラスターの共有ボリューム ファイル システム (CsvFS) いいえ
Resilient File System (ReFS) いいえ
 

SMB 3.0 では、継続的可用性機能を備えた共有上の EFS はサポートされていません。

要件

   
サポートされている最小のクライアント Windows XP Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll
API セット ext-ms-win-advapi32-encryptedfile-l1-1-0 (Windows 8 で導入)

関連項目

BackupWrite

CloseEncryptedFileRaw

ファイルの暗号化

ファイル管理の関数

ImportCallback

OpenEncryptedFileRaw

ReadEncryptedFileRaw