2006年06月05日

ASPIのコマンド


SendASPI32Commandで送るコマンドはいくつかありますが、私が使っているのは次の3つです。

ホストアダプタに関する情報(接続可能な機器の数など)を取得する
SC_HA_INQUIRY 0x00

接続されているデバイスの情報(種類など)を取得する
SC_GET_DEV_TYPE 0x01

デバイスにコマンドを送る
SC_EXEC_SCSI_CMD 0x02


各コマンドに対応する構造体は、次の通りです。
(今日は2つのみ)

ホストアダプタに関する情報を取得する
typedef struct tSRB_HAInquiry
{
BYTE SRB_Cmd; // (入力)コマンドコード = SC_HA_INQUIRY
BYTE SRB_Status;
BYTE SRB_Ha; // (入力)ホストアダプタ番号
BYTE SRB_Flags;
DWORD Reserved1;
BYTE HA_Count;
BYTE HA_SCSI_ID;
BYTE HA_ManagerId[16];
BYTE HA_Identifier[16];
BYTE HA_Unique[16]; // (出力)HA_Unique[3]に接続できる最大の機器数(ただし、0の時は8)
WORD Reserved2;
} SRB_HAInquiry;


typedef struct tSRB_GDEVBlock
{
BYTE SRB_Cmd; // (入力)コマンドコード = SC_GET_DEV_TYPE
BYTE SRB_Status;
BYTE SRB_Ha; // (入力)ホストアダプタ番号
BYTE SRB_Flags;
DWORD Reserved1;
BYTE SRB_Tgt; // (入力)ホストアダプタ内のターゲットの番号
BYTE SRB_Lun; // (入力)ターゲット内の論理ユニット番号
BYTE SRB_DeviceType; // (出力)デバイスの種類
BYTE Reserved2;
} SRB_GDEVBlock;


SRB_DeviceType に出力されるデバイスの種類
DTYPE_DASD 0x00 // Disk Device
DTYPE_SEQD 0x01 // Tape Device
DTYPE_PRNT 0x02 // Printer
DTYPE_PROC 0x03 // Processor
DTYPE_WORM 0x04 // Write-once read-multiple
DTYPE_CDROM 0x05 // CD-ROM device
DTYPE_SCAN 0x06 // Scanner device
DTYPE_OPTI 0x07 // Optical memory device
DTYPE_JUKE 0x08 // Medium Changer device
DTYPE_COMM 0x09 // Communications device
DTYPE_RESL 0x0A // Reserved (low)
DTYPE_RESH 0x1E // Reserved (high)
DTYPE_UNKNOWN 0x1F // Unknown or no device type


使わない値には、0を入れてください。
これらの構造体を、SendASPI32Commandの引数として使用します。


posted by 七癖 at 19:14| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。