阅读:1912回复:7
在passthru中加入RtlInitUnicodeString、IoCreateDevice等编译不过
我想在passthru中加入和应用程序通信的代码,仿照packet中的加入IoCreateDevice等代码,但是编译不过,如下:
assthru.c(81) : error C4013: 'RtlInitUnicodeString' undefined; assuming extern returning int passthru.c(83) : error C4013: 'IoCreateDevice' undefined; assuming extern returning int 我包含了ntddk.h头文件啊,是版本问题吗,敬请指点 [编辑 - 9/19/04 by birdtomaster] |
|
沙发#
发布于:2004-09-19 09:05
是不是,没有包含相应的头文件
|
|
|
板凳#
发布于:2004-09-19 12:58
#include "iocontrol.h"
#include "ntddk.h" #include "wdm.h" #include "ndis.h" #include "stdio.h" ... driverentry()... NTSTATUS Status = STATUS_SUCCESS; WCHAR deviceNameBuffer[] = L"\\Device\\passthru"; WCHAR deviceLinkBuffer[] = L"\\DosDevices\\passthru"; UNICODE_STRING ntDeviceName; UNICODE_STRING win32DeviceName; BOOLEAN fSymbolicLink = FALSE; PDEVICE_OBJECT deviceObject; NdisInitUnicodeString( &ntDeviceName, deviceNameBuffer); Status = IoCreateDevice (DriverObject, 0, &ntDeviceName, FILE_DEVICE_PASSTHRU, 0, TRUE, &deviceObject); 用NdisInitUnicodeString行,用RtlInitUnicodeString就不行,但是IoCreateDevice始终显示是没有定义函数,还有几个也这样,ddk帮助文档里面好像说NDIS里面不能用IoCreateDevice,NDIS drivers should never call IoCreateDevice or IoCreateSymbolicLink. Instead, if an NDIS driver must create a device object, it should call NdisMRegisterDevice. 但是packet例程里面就用了,没有问题啊? |
|
地板#
发布于:2004-09-20 17:07
#define NDIS_WDM 1 //在ndis中调用wdn函数
给分!!! |
|
|
地下室#
发布于:2004-09-21 13:19
#define NDIS_WDM 1 //在ndis中调用wdn函数 实在是高!给,最高只能给20,另外还有同一贴,请搜索光顾一下,还给你20分,共给40分 |
|
5楼#
发布于:2004-09-21 14:03
惭愧,论坛上早就有详细的说明了,我只是来蹭分而已
|
|
|
6楼#
发布于:2004-09-21 17:54
呵呵,这个家伙到处蹭分啊,不过也好,不然没这么多热心的了
|
|
|
7楼#
发布于:2004-09-22 17:08
解决了问题,得分是应该的,分嘛,我不断赚得有,呵呵
请继续帮助 :D |
|