阅读:849回复:2
SCSI卡驱动的问题
我是一个新手,正在写一个PCI接口的SCSI卡的驱动,现在刚写了一个框架,就发现不少问题,向高手们请教。我的程序大致如下:
#include \"miniport.h\" #include \"scsi.h\" ULONG DriverEntry( IN PVOID DriverObject, IN PVOID Argument2 ) { HW_INITIALIZATION_DATA hwInitializationData; ULONG Status; ULONG i; ULONG AdpterNo; static int cardNo = 0; UCHAR VendorId[4] = { \'1\', \'5\', \'0\', \'6\'}; UCHAR DeviceId[4] = { \'3\', \'2\', \'0\', \'0\'}; for (i = 0; i < sizeof(HW_INITIALIZATION_DATA); i++) { ((PUCHAR) & hwInitializationData)[ i ] = 0; } hwInitializationData.HwInitializationDataSize = sizeof(HW_INITIALIZATION_DATA); ........ hwInitializationData.SrbExtensionSize = 0; ........ } BOOLEAN MyStartIo( IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK srb ) { BYTE Buf[36] = {0,0,20,0,.....}; ..... switch (srb->Function) { case SRB_FUNCTION_EXECUTE_SCSI: if(srb->Cdb[0]==0x12){ for(i=0;i<36;i++) (BYTE *)(srb->DataBuf+i) = Buf[ i ]; } ..... } 我是想在系统发查询命令的时候,不去执行而是用Buf里的数据直接返回,但是好像srb->DataBuf的数据不能写入,而且我用Softice跟的时候,发现很多变量无法添加到Watchs中,为什么??有什么方法可以解决吗?恳请高手看看 [编辑 - 4/13/05 by tree4520] [编辑 - 4/13/05 by tree4520] |
|
沙发#
发布于:2005-04-13 14:22
本地变量并不一定所有的都可以同Symbol名称来得到
这个是因为DDK编译后,编译器优化了部分变量,使用寄存器来代替了 |
|
|
板凳#
发布于:2005-04-13 19:36
那修改srb->DataBuffer指向的数据呢?为什么不能修改?
|
|