阅读:1048回复:5
请问如何在WDM驱动程序中定义一个数组指针指向I.IoctlBuffer?请问如何在WDM驱动程序中定义一个数组指针指向I.IoctlBuffer? 比如 DWORD a[10] …………? 因为好像不能直接给I.IoctlBuffer赋值, 所以我要把我的数组传给I.IoctlBuffer,必须用这个数组的指针指向I.IoctlBuffer? |
|
|
沙发#
发布于:2004-09-11 12:34
建议申请内存:
I.IoctlBuffer= ExAllocatePool(PagedPool,size);或 I.IoctlBuffer= ExAllocatePool(NonPagedPool,size); |
|
|
板凳#
发布于:2004-09-11 14:52
建议申请内存: 申请内存的函数与我定义的那个数组也挨不上边呀 然后咋办? |
|
|
地板#
发布于:2004-09-11 20:26
真是什么人都敢写驱动呀,都没有什么基础。。。别人告诉你用RtlCopyMemory还是不明白在说什么,那就没有办法了。。。
拿你那个代码来说 在wdm中,: DWORD SampleAngle[17]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; 然后在 NTSTATUS UuuDevice::W32IF_SET_MEASUREMODE_Handler(KIrp I) { NTSTATUS status = STATUS_SUCCESS; .................. ................. // I.IoctlBuffer() = SampleAngle;///这句话有问题吗? // 问题大了去了,改成 RtlCopyMemory(I.IoctlBuffer, SampleAngle, sizeof(SampleAngle)); // 应该有个地方这样: I.Information() = sizeof(SampleAngle); .................. ................. } |
|
地下室#
发布于:2004-09-11 20:53
真是什么人都敢写驱动呀,都没有什么基础。。。别人告诉你用RtlCopyMemory还是不明白在说什么,那就没有办法了。。。 555555555555555555555555 其实我就是这么改的,但是还是不好使!! |
|
|
5楼#
发布于:2004-09-13 09:00
你的相应部分的汇编代码贴出来看看......嘿嘿......
|
|
|