トップ回答者
自作GINAでWindowsシャットダウンダイアログだけ呼ばれません…

質問
-
WindowsXP Professionalで、VC++ 2008 Express Edition を使っています。
system32内のmsgina.dllの代わりとなる自作dllを作り、
そのdllへのパスをレジストリ「HKLM\software\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL」に設定しました。これによりログオン・ログオフ関連のほとんどの処理は自作dllのほうが呼ばれるようになったのですが、
タスクバーの「スタート」→「シャットダウン」で出てくるWindowsのシャットダウンダイアログだけが
どうしてもデフォルトのsystem32内にあるmsgina.dllのほうが呼ばれてしまいます。自作dllのほうを呼ばれるようにするにはどうすればいいでしょうか?
どこか別のレジストリに設定すればいい、と言うのであれば楽なのですが…。何かご存知の方がいらっしゃいましたら、ご教授よろしくお願いします。
回答
すべての返信
-
まず、その様なOSの改造はMicrosoftが禁止しています。
しかし、ブート画面やログオン画面を変更できるフリーソフトが
多数出回っているのも事実です。変更することだけが目的なら、このようなソフトを「実験的に」
利用してみてはどうでしょうか、ただし、これらのソフトの内のいくつかはボットであったりして、
極めてセキュリティ上の危険がありますので、覚悟(OSの再インストール等)して使ってください。
さて、その中でMicrosoftが唯一公式に許しているのが起動時のロゴ画面の変更です。
これは、Boot.ini の変更と、640×480(16色)のビットマップを作成するだけで、危険性も
ありません。 Boot.ini のオプション /BOOTLOGO /NOGUIBOOT について調べてみてください。
「それでも挑戦する」という気概があるのであれば、
1.起動時ロード画面は「ntoskrnl.exe」の中のリソースにあります。
2.カーネル自体を差し替えるにはHDDのMBR(マスターブートレコード)を変更します。
パーティションがきってある場合はBR(ブートレコード)も変更しなければなりません。
成功すると MBR->BR->自作カーネル->ntoskrnlの順に起動できる「かも」しれません。
3.残念ながらログインの詳細については知りません。
4.本気でやるならWindows XP Embedded 開発ツールを購入しましょう。
これを使うと(メインボードにもよりますが)USBストレージ(メモリ/HDD)から起動できる
ようにできるため、より安全に実験ができます。
5.Embeddedの関連ドキュメントにはサードパーティーのGINAに関する情報が含まれています。
では、くれぐれも自己責任でお願いします。
-
-
「OSを改造しちゃいかん」と箱にかいてあります。が、詳しい範囲は不明。一般に
1.BIOS ・・・変更できない
2.MBR/BR ・・権利関係を知りません。 まぁ、やってる人もいます。
3.ローダー・・・ntldr 改造不許可
4.カーネル・・・ntoskrnl.exe 改造不許可 画面を変更できるソフトあり
5.ログオン・・・winlogon.exe(だけだったかな)改造不許可 画面を変更できるソフトあり
6.シェル・・・・・explorer.exeは改造不許可 独自shellに差し替えは許可
ローダーから先はMS製品なので改造不許可です。
XP Embeddedについては作成対象がOS自体になるのでOSの製品化はOK
ただし、FP2007ごろまでは「Loading...」画面の改造はだめ(カーネルの改造にあたる)
という記述がどっかにあった・・・けど、たぶんEmbeddedの英文マニュアルの中だとおもいます。
ログオン、ログオフについてはまったくしりません。あしからず。
-