阅读:1589回复:4
zhaock老大,帮我看看发送自己组建的包问题?
在IMD驱动中类似ndissuio的方法pEthHeader =(PETH_HEADER)MmGetSystemAddressForMdlSafe(pIrp->MdlAddress,NormalPagePriority);PETH_HEADER是和ndissuio中的结构相同,在应用程序中通过DeviceIoControl通知IMD,方式:METHOD_OUT_DIRECT,并且是同步方式。当驱动运行到pEthHeader =(PETH_HEADER)MmGetSystemAddressForMdlSafe(pIrp->MdlAddress,NormalPagePriority);或
pEthHeader =MmGetSystemAddressForMdlSafe(pIrp->MdlAddress,NormalPagePriority);机器就重启,为什么? |
|
沙发#
发布于:2005-07-26 23:15
这么做,不应该有问题.你把应用程序调用DeviceIoControl的代码也贴上来看看,看看参数是不是写错了.
用ice调试一下,看看这个时候的irp->MdlAddress是不是0,如果是,就是参数的问题 |
|
板凳#
发布于:2005-07-27 09:24
if(!DeviceIoControl(m_hDevice,
IO_GET_SENDPACKET_EVENT, //METHOD_OUT_DIRECT方式 InputBuffer, //unsigned char InputBuffer[128],组建的数据包定义为数组 128, //直接用128,包的长度实际不是128 NULL, NULL, &dwReturn, NULL )) 使用SoftIce调试时,一开始F10就显示的是汇编语言,看不懂,怎么回事? |
|
地板#
发布于:2005-07-27 09:28
你这么做当然不对了,用METHOD_OUT_DIRECT,MdlAddress对应的是Outputbuffer,你OutputBuffer为NULL,MDLAddress就为NULL,你还直接引用MdlAddress,当然就崩溃了.把InputBuffer改成OutputBuffer,
就可以了. |
|
地下室#
发布于:2005-08-02 10:54
各位牛哥,能不能说得详细一点,菜鸟们看不明白啊!
|
|