関心があってISO吸い出し挑戦したのですが、HFS/HFS+とのハイブリッドのディスク(Toastで言うカスタムハイブリッド)に対してReadFile()を使うと、ISOファイルシステムに含まれる領域しか読み出せないのですね。
# 正確にはドライブをCreateFile()で開いてReadFile()
SPTI経由でREAD(10)を発行すれば全て読み出せました。
やり方が悪いのか、IOCTL_CDROM_READ_TOC_EXがDVDだと通らないので、TOC取得の段階からSPTIに手を染めざるを得なかったりしますが。
WDKのapi/ntddscsi.hやddk/scsi.hに多少の定義がありますが、単純にunsigned charで定義したCDB配列、というよりSCSI_PASS_THROUGH構造体のCdbメンバに直接代入した方が楽なようです。
さてこのREAD(10)というコマンド、SCSIの初期から存在しているのだそうで。DVD規格が策定される10年以上前のコマンドで読み出せるのは、規格の素性と実装屋の頑張りと、最初の人と当時の人が思われて感動します。
さらにREAD(10)の原型になったREAD(6)コマンドは、SASIから取り込まれたものだそうで、悠久の時を感じる物語。SASIの最大40MBなんて容量は、今ではHDDのキャッシュです。
SASIはSCSIに移行し、そのSCSIも個人向けからは姿を消しましたが、コマンド体系はATAPIに流用され、こうして今も隣にいるのです。
一度途絶えたので更新ではなく新規になりましたが、CERTUMのコード署名用証明書を取得し直しました。
そういえば証明書には秘密鍵というものがあるのでしたね。
Firefoxで手続きしたら署名でエラーが出て、何だろう何だろうと試行錯誤したところ、InternetExplorerでCERTUMウェブ上からInstallボタンを押した時に「秘密鍵がないよ」と表示されまして、FirefoxからエクスポートしてIEでインポートし、事なきを得ました。
IEがWindowsと結びついているのも善し悪しではあるのですが。
Web版MSDNライブラリを表示した状態で、Firefoxのタブを開こうとして間違ってShift+Tを押してしまいました。
するとMSDNライブラリの左ペインの幅が変わり、或いは消えました。ショートカットはTなのですね。
試しにCtrl+Tでタブを追加して元に戻ると、やはり変わっていました。修飾キーの状態は見ていないようです。
MSDNライブラリの表示状態が時々変わる謎が解けました。でもFirefox側の操作であるCtrl+Tをスクリプトに検出されるのはどうなのか。
仕事でもらったVisual C++ 2010 ExpressのslnファイルをダブルクリックしてもVisual Studio 2010 Professionalから開けないので試行錯誤したところ、UTF-8のBOMがないと受け付けられないとわかりました。
Version Selectorは共通でしょうから、ExpressだからといってBOMがないとは思えないので、何かの手違いでしょうが。
入れたのは純粋にVisual C++だけ(ヘルプも無し)ですが、Visual Studio 2010 Professional (評価版)をインストールした時に入るソフト一覧を記しておきます。
Dotfuscator Software Services - Community Edition - JPN
Microsoft .NET Framework 4 Client Profile
Microsoft .NET Framework 4 Client Profile Language Pack - 日本語
Microsoft .NET Framework 4 Extended
Microsoft .NET Framework 4 Extended Language Pack - 日本語
Microsoft .NET Framework 4 Multi-Targeting Pack
Microsoft Help Viewer 1.0
Microsoft SQL Server 2008 R2 Data-Tier Application Project
Microsoft SQL Server 2008 R2 Transact-SQL Language Service
Microsoft SQL Server 2008 R2 データ層アプリケーションフレームワーク
Microsoft SQL Server 2008 R2 管理オブジェクト
Microsoft SQL Server Compact 3.5 SP2 JPN
Microsoft SQL Server Database Publishing Wizard 1.4
Microsoft SQL Server System CLR Types
Microsoft Team Foundation Server 2010 オブジェクト モデル - 日本語
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4974
Microsoft Visual C++ 2010 x86 Runtime - 10.0.30319
Microsoft Visual Studio 2010 Professional - 日本語
Microsoft Visual Studio 2010 Tools for Office Runtime (x86)
Microsoft Visual Studio 2010 Tools for Office Runtime (x86) Language Pack - 日本語
Microsoft Visual Studio Macro Tools
Microsoft Visual Studio Macro Tools - JPN Language Pack
最低でもこれだけは入ってしまいます。