-- CDチェックとディスクチェックの違い -- 世の中にあるプログラム全てに言えることではありませんが、当サイトで 公開しているものでは「GetDriveTypeA の判定用の数値が違うだけ」です。 例えば、 :00401061 FF1504504000 call dword[00405004] ;;call KERNEL32.GetDriveTypeA :00401067 83F802 cmp eax, 00000002 となっていた場合、最後の 00000002 がドライブの種類を表しており、 以下のようなものがあります(MSDNオンラインマニュアルを参照)。 (数値) (VC++での値) (意味) 00000000 DRIVE_UNKNOWN ドライブの種類が判別できません。 00000001 DRIVE_NO_ROOT_DIR 指定のルートディレクトリが存在しません。 00000002 DRIVE_REMOVABLE 取り外し可能なメディア(フロッピーなど)。 00000003 DRIVE_FIXED ハードディスクみたいに、取り外し不可のもの。 00000004 DRIVE_REMOTE リモート (ネットワーク) ドライブ。 00000005 DRIVE_CDROM CD-ROMドライブ。 00000006 DRIVE_RAMDISK RAMディスク。 つまり、値に 00000005 が指定されていた場合がCDチェックとなるわけです。 このことを覚えておけばフロッピーディスクのチェックも、CDのチェックも 似たようなものであるということが分かります。