阅读:1356回复:3
关于Win2000,WinXP下的U盘SCSI命令
在Win98下可以通过SendASPI32Command发送
SC_GET_DISK_INFO(0x06 // Get Disk information) 命令给U盘,然后可以得到如下结构的值: typedef struct // Offset { // HX/DEC BYTE SRB_Cmd; // 00/000 ASPI command code = SC_GET_DISK_INFO BYTE SRB_Status; // 01/001 ASPI command status byte BYTE SRB_HaId; // 02/002 ASPI host adapter number BYTE SRB_Flags; // 03/003 Reserved, MUST = 0 DWORD SRB_Hdr_Rsvd; // 04/004 Reserved, MUST = 0 BYTE SRB_Target; // 08/008 Target's SCSI ID BYTE SRB_Lun; // 09/009 Target's LUN number BYTE SRB_DriveFlags; // 0A/010 Driver flags BYTE SRB_Int13HDriveInfo; // 0B/011 Host Adapter Status BYTE SRB_Heads; // 0C/012 Preferred number of heads translation BYTE SRB_Sectors; // 0D/013 Preferred number of sectors translation BYTE SRB_Rsvd1[10]; // 0E/014 Reserved, MUST = 0 } SRB_GetDiskInfo, *PSRB_GetDiskInfo, FAR *LPSRB_GetDiskInfo; 其中包括SRB_Heads和SRB_Sectors,即U盘的磁头数和扇区数,请问哪位大虾知道这个ASPI命令向U盘发送了什么命令和参数来得到这个结构的值? 因为Win2000下没有ASPI,只有SCSI命令,所以我想知道这个ASPI向U盘发送了那些SCSI命令,这样在Win2000下就也可以得到这些参数了,谢了!(根据我的理解U盘和操作系统之间都是通过SCSI命令来互相通讯的,包括读写,那么这些参数应该也是由SCSI命令得到的吧,不过不知是那些SCSI命令) |
|
最新喜欢:![]() |
沙发#
发布于:2004-08-11 08:49
请问有人知道吗?
|
|
板凳#
发布于:2004-08-11 16:50
我也做这个,没解决呢。:)大家讨论讨论
|
|
|
地板#
发布于:2004-08-11 17:26
小硬盘靠0扇区前几个bytes,大硬盘通过报告的容量计算后得。具体位置你查一下。
|
|