「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
「実行コンテキスト」には色々な定義が有ると思いますが、
ここでは、実行環境の違いで問題が起きた事例から
知っておくべき「実行コンテキスト」発掘していきます。
「実行コンテキスト」には、以下の様々なものがあります。
実行コンテキストの例 †
CPUの状態(コンテキストスイッチ) †
メモリ上の変数 †
ローカル変数 †
グローバル変数 †
TLS †
共有メモリ †
ユーザ情報 †
- ログインユーザや実行アカウントによって変わる情報
- ログインユーザや実行アカウント毎に変わるので注意が必要。
認証情報 †
- 実行アカウント
- 認証条件(ネゴシエーションの結果、何で認証したか)
権限情報 †
ユーザの環境変数 †
ユーザのレジストリ †
(ログオン)セッション †
どのセッションに属しているか。
ちなみに、Windows Vista/7ではSession 0の分離が行われたため、
単純にサービスはGUIを持てないが、以下の様な裏技がある模様。
ユーザ・プロファイル †
ユーザプロファイルの有無(ログインしているか・していないか)。
システムの情報 †
システムの環境変数 †
システムのレジストリ †
アドレス空間的な †
x86 †
32bit
- 通常
- PAE:Physical Address Extension、物理アドレス拡張
x64 †
サービス・タスク系 †
- サービス・タスク系は一般ユーザが実行する処理と比べると
実行コンテキストが異なっているため、問題となることが多い。
- サービス・タスク
- バッチ
- サービス
- タスク・スケジューラ
セキュリティ関連 †
Group Policy †
- Group Policy
- Local Security Policy
サンドボックス †
サンドボックスなども、コンテキストといえるかもしれません。
- IE
- 設定
- IEセキュリティ強化の構成の有効・無効
- JavaScript
- ActiveX
- HTML5
- ,etc.
AppLocker? †
特権 †
DEP機能 †
有効・無効
その他 †
標準入出力 †
標準入出力(stdin、stdout、stderr)は、匿名pipeで実装されている。
pipeで大量の出力がある場合、反対側で読み取らないと、
途中で出力が止まったまま、ずっと待ちになる。
参考 †
Tags: :インフラストラクチャ, :Windows, :その他、開発の色々