データ実行防止モードがアドインを無効化する条件


こんにちは。日本マイクロソフト Outlook サポート チームです。
Outlook のアドインが無効になってしまう原因のひとつとして、データ実行防止モード (DEP) の動作によるものがあることを以前のブログ記事にてご案内しました。
この記事では、DEP がアドインを無効化する条件について説明します。

■ DEP がアドインを無効化する条件
以下のいずれかに該当する場合に、データ実行防止モードでアドインが無効化されます。

A. アドインが初期化されていないオブジェクトなどを使用し、そのオブジェクトのメソッドのアドレスがデータ領域を指していた。
B. Windows の不具合により、コード用としてマークされるべきメモリ領域がデータ用としてマークされた。

A について
データ用に確保されたメモリに実行用のコードを書き込み、そのコードを実行するような動作がアドインにある場合、DEP と互換性がないと判断されてアドインは無効化されます。
アドインのソースコード内で、定義したオブジェクトの初期化を行えていればこのような動作は通常発生しません。
なお、アドインの種類が VSTO アドイン (※) の場合は参照型のオブジェクトは宣言時に自動的に NULL が格納されるため、いかなる場合もこの条件には該当いたしません。

B について
Windows Server 2008 R2 のターミナル モードにおいては、Windows の不具合により誤ってコード実行用のメモリがデータ用のメモリと判断され、DEP のエラーが発生する場合があります。
Windows 7 など、その他の OS はこの不具合に該当いたしません。

- 参考資料
Title: Outlook crashes on Windows Server 2008 R2 Terminal Server when DEP is enabled
URL: https://support.microsoft.com/ja-jp/kb/2028367

■ 条件に合致しない事象について
現在、Windows 7 上の Outlook で、A にも該当していないにもかかわらず DEP でアドインが無効化されるというお問い合わせをいただいております。
未知の不具合である可能性があり、現在弊社にて確認中です。

※ 補足
対象のアドインが VSTO アドインであるかは、以下の手順で確認することができます。

- 手順
1. Outlook を起動し、[ファイル] タブの [オプション]-[アドイン] をクリックします。
2. アドインの一覧から、対象のアドインの行の [場所] 列を確認します。
3. ファイルの拡張子が「vsto」または「vstolocal」の場合、VSTO アドインです。

2016-10-25_114517

________________________________________

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります


Skip to main content