SSE5 WinRing0 RC1
8 月 31

日本語マニュアルを久しぶりにチェックしたら一部未翻訳の部分がありましたので翻訳しました。

あとは、デジタル署名を施せば正式版リリースとなるわけですが、まだ連絡はありません。時差を考えると明日の朝起きたときに連絡が来てないければ、また来週もワクワクドキドキしながら待つことになりそうです。

デジタル署名が取れなければ、オレオレ署名でもくっつけてリリースします。x64 ではロードできませんけどね。

12 Responses to “WinRing0 マニュアル翻訳作業完了”

  1. hiyohiyo Says:

    連絡来てねぇ~ orz
    もう一度寝よう…

  2. habe Says:

    英語マニュアルの誤訳とかtypoはここで突っ込んでOKですか?

  3. hiyohiyo Says:

    > habe 師匠
    桶です。よろしくお願いいたします。
    一応、MSDN 見ながら一生懸命書いたんですがね・・・。
    反響が少ないプロジェクトですが、師からコメントいただけてホント光栄です。

  4. habe Says:

     いやー。よくできてると思いますよ。少なくとも全く通じない部分はないと思うので。それに存在しないよりはずっとましです。

     さて。「僕の感覚に合わない」てな難癖レベルも含めて指摘していきます。

    + What’s Ring0
    * Features
    - “access to”の”to”は不要かも。要調査です。
    * Operating Environment
    - 普通は”requirement”とか”prerequisite”って言葉をよく使います。”supported environment”とかでもOKですね
    - 必要条件なので”you should do…”じゃなくて”you have to disable…”でよいのでわ?

    + How to Use
    * Load-Time Dynamic Linking
    - C言語的には”#include…”は文(statement)ではないです。指令(directive)だったかな?
    - プログラムなどのフォントはCourierにすると親切です。
    * Using WinRing0 from a…
    - 最初の”We will provide…”が意味不明気味でした(対応する日本語もない…(/_;))

    + GetDllStatus
    * Returns Values
    - これ。表題は複数形でよいのかしら? 要調査です。
    - “not supported platform”は”unsupported platform”か”platform not supported”が普通かも。
    - “not load driver”は過去分詞形にすべき? “driver not loaded”…うーん。これもちと気持ち悪い。要調査です。
    - “not found driver”は”driver not found”とか?
    - ところで”not load”と”not found”と”unload”ってどう違うの?

    + InstallOpenLibSys
    - “this function installs (a) dev. driver, makes it available from non-admin.accounts” (か”to make it…”)辺りかしら?

    + UninstallOpenLibSys
    * Remarks
    - “the database entry…”ですけど”database entry”って初出なので”the”はちとおかしいかも。

    + IsCpuid
    - (関数名が微妙だなぁ・・・)
    * Remarks
    - “latest…”の部分。どこかに”also”があると読みやすいと思います。

    + Hlt
    - “this function executes…”の”executes”ですけど。もっといい動詞がありそう。要調査です。
    * Return Values
    - ところで”HLT”に成功した&値を返す(=RETが実行される)ってありえるの?

    取り敢えずここまで。続く…。

  5. hiyohiyo Says:

    > habe 師匠
    詳細なご指摘誠にありがとうございます。週末一気に修正したいと思います。マクロ名の変更も伴いそうなので、プログラムの方も併せて更新します。

    - ところで”not load”と”not found”と”unload”ってどう違うの?
    not load : 管理者権限がないなどファイルはあるけどドライバがロードできない。
    not found : ドライバがみつからない。
    unload : 他のプロセス(ドライバ管理ソフトなど)から強制的にドライバをアンロードされた。

    って、説明がないとわからないですね。

    - ところで”HLT”に成功した&値を返す(=RETが実行される)ってありえるの?
    ドライバがアンロードされている時に FALSE が返ります。

  6. WinRing0 のマニュアル Says:

    [...] マニュアルの不備(誤字、脱字および誤訳など)に気がついた方は WinRing0 マニュアル翻訳作業完了 のコメント欄にお寄せ下さい。情報を一か所にまとめたいので。 [...]

  7. habe Says:

    > ひよひよさん
    えと。「師匠」は遠慮願いたく。むずむずします。

    “not load”とか”not found”で意味が違うのならばマクロも直した方がよさそうですね。”LOAD_FAILED”と”DRIVER_NOT_FOUND”とか。

    あと”HLT”って割り込みが来るまで全命令の実行を停止しちゃうんですよね? たしか。なので”HLT”成功直後に”RET”が実行されることはないのかな…。と。
    # まあ(1) “HLT”を実行(2)最初のタイマ割り込みまで10 ms待って(3)ライブラリがTRUEを返すというパターンも成功と云えば成功でしょうけど…。

    …続きです。

    + HltEx
    - Hltとの違いを明確にした方がいいでしょうね。”HltEx() stops execution of specified processor instead of … Major difference from Hlt() is …”みたいに。

    + Rdmsr
    - “Loads the contents of…”とあるけど”contents”は複数形なのかなぁ。要調査。
    * Remarks
    - 折角なので末尾に”If RDMSR is not supported on your system, the result is unspecified.”みたいなのがあるとよいかな? (ないしチェックするのが一番ですが)

    + Cpuid
    * Remarks
    - “you should execute…”の”execute”は”call”とか”invoke”のが自然かも
    - とゆーか”you should check if/whether CPUID is supported (on your system) with IsCpuid()”とかがいいかな?

    + ReadMemBlock
    - (これってphysical addressじゃなくてlinear addressだったりします?)
    * Remarks
    - “The function…”では「制限」ってイメージがでませんね。”The accessible space is limited to 4 GB.”みたいなのがよいかも。

  8. hiyohiyo Says:

    > habe 様
    マクロ名はRC2で変更します。幸いユーザーなんてほとんどいませんから
    今なら全く問題ありません。

    ># まあ(1) “HLT”を実行(2)最初のタイマ割り込みまで10 ms待って(3)ライブラリがTRUEを返すというパターンも成功と云えば成功でしょうけど…。
    そういうことですね。

    >+ ReadMemBlock
    >- (これってphysical addressじゃなくてlinear addressだったりします?)
    MmMapIoSpace を使っているので物理アドレスだと思います。
    4GB 以降にもアクセスできる方法も調査しておかねば・・・。

  9. habe Says:

    > ひよひよさん

    物理アドレスでしたか。しつれいしました。
    4 GB以降にアクセスするためにはページング機構を使わないと駄目な気がしないでもないですね。わかってないので憶測ですが。

    さて続き。

    + FindPciDeviceById
    - “this function finds…”の”find”って(私の感覚では)ちょっと違うかな? と思いました。「見つかった」という感じよりも「探しにいく」のがメインだと思うので”searches”とか”retrieves”の方がよいのかな。と。
    * Syntax
    - 引数が”vendor”じゃなくて”vender”になってます。たぶん”間違い”ではないけど。。。
    * Return Values
    - “if it finds…”は受動態の方が自然だと思います。”if a PCI device is found…”とか。こっちは「見つかった」感じなので”find/found”が自然ですね

    以上です。あとは余談など。

    FindPciDeviceById()とかGetDriverVersion()の引数・戻り値ってマクロで分解・結合できると便利かな。と思いました。例えば
    | #define GDV_MAJOR(v) ((v>>24)&0xff)
    | …
    | #define GDV_VERSION(maj, min, rev, rel) ((maj おれ
    + HltEx()の説明で”Major difference…”と例文を挙げたけど”The only difference”とかの方がよいかも > おれ
    + チュートリアルみたいなくだけた文章ではないので”you”とか”your”を多用するのは避けた方がいいかも > おれ
    + 英語できないのにえらそうな顔するな > おれ

  10. hiyohiyo Says:

    > habe さん
    たくさんのコメントありがとうございました。コメントを参考に今週末修正させていただきます。

    サポートマクロもあった方が良いですね。必要そうなマクロを追加し、マニュアルにも載せておきます。

    Find… って名前はどうも伝統的みたいなんですよね。他にもご指摘のように実際にやってることは search って感じなのですが、他の PCI 関連のプログラムも Find… って感じの名前になってますし。

    「PCI デバイス設計入門」によると、PCI BIOS のファンクションの中に
    AX=B102h Find a PCI Device
    AX=B103h Find a PCI Class Code
    って感じになっています。

  11. 鋭意修正中… Says:

    [...] WinRing0 マニュアル翻訳作業完了 [...]

  12. hiyohiyo Says:

    > habe さん
    諸々修正中です。全ては取り込めませんが、だいぶ良くなりそうです。

    GetDriverVersion については、分解の必要がないよう、戻り値にまとめた情報を引数にそれぞれの情報を返すようにしています。

    PCI 関連のマクロはあるのですが、このままだと C# など他の言語から使えませんねぇ・・・。

Leave a Reply