>>772
No Touch DeploymentやWPF-XBAPのような、本来プラットフォーム呼び出しができない
制限ゾーンで動くアプリケーションから不用意にP/Invokeを使ったメソッドが呼び出されてしまう。
もちろんパラメータを十分吟味して危険でないことが保障できれば使ってもよい。

一般的にはひとつの処理で大量にP/Invokeを使う場合に、
権限チェックを少ない回数で済ませる為に使用する。
[DllImport("Kernel32.dll"),SuppressUnmanagedCodeSecurity]
static extern int Hoge();
[SecurityPermissionAttribute(SecurityAction.Demand, UnmanagedCode = true)]
void OneTask() {
  for (i=0; i<1000; i++) { ...; Hoge(); } // 1000回呼ぶ
}
// OneTask()で1回だけ権限チェックし、1000回分の権限チェックを省略している。