#defineの定数値を得る方法 or 環境構築

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: #defineの定数値を得る方法 or 環境構築

by Oryaaaaa » 2005年6月03日(金) 01:33

ああ!謎が解けた。

ありがとう。ヒントと資料は揃った。うまくいくかな・・・
USBメモリをセットしているUSBコントローラー名の取得

Re: #defineの定数値を得る方法 or 環境構築

by イグトランス » 2005年6月02日(木) 21:32

コード: 全て選択

#define IOCTL_DISK_BASE FILE_DEVICE_DISK
#define FILE_DEVICE_DISK 0x00000007
私の手元ではこうなっていますよ。

コード: 全て選択

> #define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE (0x0000002d)
Oryaaaaaさんが見ていたのはこっち、
IOCTL_「STORAGE」_BASEですよ。

#defineの定数値を得る方法 or 環境構築

by Oryaaaaa » 2005年6月02日(木) 18:53

コード: 全て選択


#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) 
例えば、この場合だと

コード: 全て選択


Public Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000 
このような結果が得られることが知られています。

DDK(DriverDevelopmentKit)に含まれる情報でMS社から情報入手となると
面倒なことになりそうな案内。そこで探してcygwinのw32apiパッケージ
に、ストレージ・USBデバイスを含めた#define情報がありました。
Index of /pub/cygwin/release/w32api
http://ftp.yz.yamagata-u.ac.jp/pub/cygw ... se/w32api/

そして

コード: 全て選択


#define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m))
#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE (0x0000002d)
#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE,0,METHOD_BUFFERED, FILE_ANY_ACCESS)
よりIOCTL_DISK_GET_DRIVE_GEOMETRYの定数値を求めようとすると&H2D000000
となり、よく知られた&H70000と不一致になります。この&H70000はいったい
どのようにして得られる定数なのでしょうか? または必要な環境など
教えていただけないでしょうか?

ページトップ