Windows 2000拡張カーネル回りで判明してる不具合まとめ

1. psapi.dll の GetProcessImageFileNameW / GetProcessImageFileNameA が動作しない。
調べてみたところ。

Windows 2000は  NtQueryInformationProcess の

    ProcessImageFilename = 0x1B
    ProcessLUIDDeviceMapsEnabled = 0x1C
    ProcessBreakOnTermination = 0x1D
    ProcessDebugObjectHandle = 0x1E
    ProcessDebugFlags = 0x1F
    ProcessHandleTracing = 0x20
    ProcessIoPriority = 0x21
    ProcessExecuteFlags = 0x22
    ProcessTlsInformation = 0x23
    ProcessCookie = 0x24
    ProcessImageInformation = 0x25

に対応していない。 psapi.dll は 0x1B のファンクションを直接読んでいるので、エラーになる。対応には、拡張コアの変更が必要。 WildBill Kernelはサポートしたことになってるが、バグがあって動作しない。修正すると一見動くように見えるが、パス形式が全く違うので、使用してるアプリでは、エラーになる

実装にあたって必要な EProcess 構造体の中身がこちら。
Inside MicrosoftR WindowsR 2000, Third Edition

Windows XPが持っている、 _SE_AUDIT_PROCESS_CREATION_INFO  構造体がなく、代わりにファイル名だけの 最大16バイトの ImageFile 構造体がある

タスクマネージャーで XPではちゃんとファイル名がすべて出てくるのに、2000では 15文字しか出てこないのはこれのせいでした・ω・;

2. Crypt32.dll の不具合

一部の環境でXPの crypt32.dll を改造した v24c の拡張カーネルを使っているとアプリケーションのインストールなどに失敗したりタスクスケジューラーでエラーがでるそうな。
これがどうしてもうちの環境で再現できなくて、てこずっています・ω・

Windows 2000拡張カーネル回りで判明してる不具合まとめ

1. psapi.dll の GetProcessImageFileNameW / GetProcessImageFileNameA が動作しない。
調べてみたところ。

Windows 2000は  NtQueryInformationProcess の

    ProcessImageFilename = 0x1B
    ProcessLUIDDeviceMapsEnabled = 0x1C
    ProcessBreakOnTermination = 0x1D
    ProcessDebugObjectHandle = 0x1E
    ProcessDebugFlags = 0x1F
    ProcessHandleTracing = 0x20
    ProcessIoPriority = 0x21
    ProcessExecuteFlags = 0x22
    ProcessTlsInformation = 0x23
    ProcessCookie = 0x24
    ProcessImageInformation = 0x25

に対応していない。 psapi.dll は 0x1B のファンクションを直接読んでいるので、エラーになる。対応には、拡張コアの変更が必要。 WildBill Kernelはサポートしたことになってるが、バグがあって動作しない。修正すると一見動くように見えるが、パス形式が全く違うので、使用してるアプリでは、エラーになる

実装にあたって必要な EProcess 構造体の中身がこちら。
Inside MicrosoftR WindowsR 2000, Third Edition

Windows XPが持っている、 _SE_AUDIT_PROCESS_CREATION_INFO  構造体がなく、代わりにファイル名だけの 最大16バイトの ImageFile 構造体がある

タスクマネージャーで XPではちゃんとファイル名がすべて出てくるのに、2000では 15文字しか出てこないのはこれのせいでした・ω・;

2. Crypt32.dll の不具合

一部の環境でXPの crypt32.dll を改造した v24c の拡張カーネルを使っているとアプリケーションのインストールなどに失敗したりタスクスケジューラーでエラーがでるそうな。
これがどうしてもうちの環境で再現できなくて、てこずっています・ω・

おすすめ

1件の返信

  1. 名無し より:

    >これがどうしてもうちの環境で再現できなくて、てこずっています・ω・
    拡張コア絡みでは?
    私の環境には拡張コアは導入していませんが、カタログファイルエラーが起きました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です