高速シャットダウンのためのベスト プラクティス

適用対象: Outlook 2013 | Outlook 2016

このトピックでは、管理者、MAPI クライアント、MAPI プロバイダーが Windows レジストリ設定と高速シャットダウン インターフェイスを使用して、クライアントのシャットダウン中のデータ損失を最小限に抑えるためのベスト プラクティスをお勧めします。

  • MAPI クライアントが高速シャットダウンを正常に実行してプロバイダー プロセスでデータ損失が発生しないようにするには、MAPI クライアントが最初に IMAPIClientShutdown::QueryFastShutdown メソッドを呼び出す必要があります。 クライアントは、IMAPIClientShutdown::QueryFastShutdown の戻り値で示されているように、MAPI サブシステムの高速シャットダウンのサポートに基づいて IMAPIClientShutdown::NotifyProcessShutdown メソッドと IMAPIClientShutdown::D oFastShutdown メソッドを続行する必要があります。 MAPI クライアントとして、IMAPIClientShutdown::QueryFastShutdown がエラーを返した場合、Microsoft Outlook は IMAPIClientShutdown::NotifyProcessShutdown または IMAPIClientShutdown::D oFastShutdown を呼び出しません。 管理者が Windows レジストリで高速シャットダウンを無効にした場合、MAPI サブシステムは IMAPIClientShutdown::QueryFastShutdown にMAPI_E_NO_SUPPORTを返します。 この場合、MAPI サブシステムは MAPI プロバイダーに対して、即時クライアント プロセスの終了を通知しません。 したがって、MAPI クライアントがこのエラーリターン コードを無視し、高速シャットダウンを実行し、すべての外部参照を切断すると、読み込まれた MAPI プロバイダーはすべてデータ損失を受けます。

  • MAPI プロバイダーは 、IMAPIProviderShutdown : IUnknown インターフェイスを実装して、クライアントが終了する前にクライアントが外部参照を切断することによるデータ損失を回避するために、タイムリーかつ必要な手順を実行する必要があります。 プロバイダーは、プライマリ データ ストアにデータを保存するのに必要でない他のすべてのものを延期する必要があります。 たとえば、トランスポート プロバイダーは、新しいメールにチェック不要なバックグラウンド操作を延期し、アドレス帳プロバイダーはサーバーからの最近の変更のダウンロードを延期し、ストア プロバイダーは圧縮やインデックス作成などのメンテナンス タスクを延期する必要があります。

  • MAPI クライアントを閉じるとすぐに終了するユーザーは、プロバイダーがオプトアウトしない限り、高速シャットダウンを有効にする既定のレジストリ設定を使用する必要があります。

  • MAPI クライアントが IMAPIClientShutdown::D oFastShutdown を呼び出すと、 MAPIUninitialize 関数を含む MAPI への追加の呼び出しは行われません。 クライアントは、クライアント プロセスの有効期間の残りの期間、MAPI を使用しないでください。

  • MAPI クライアントは、プロバイダーの IMAPIProviderShutdown インターフェイスを直接呼び出すべきではありません。 MAPI クライアントでは、常に IMAPIClientShutdown : IUnknown インターフェイスを使用する必要があります。

  • MAPI プロバイダーが読み込まれている間に高速シャットダウンが使用されないようにする必要がある場合は、 IMAPIProviderShutdown インターフェイスを実装し、 IMAPIProviderShutdown::QueryFastShutdown メソッドのMAPI_E_NO_SUPPORTを返す必要があります。 ただし、Outlook などの MAPI クライアントの場合、これにより、クライアントは高速シャットダウンを破棄し、シャットダウンに長い時間がかかります。

関連項目

MAPI でのクライアント シャットダウン

高速シャットダウンの概要

高速シャットダウン ユーザー オプション