-
-
[解决]vs2010配置驱动开发
-
发表于:
2010-7-19 19:29
20501
-
我用的是vs2010和winddk7配合开发,vs2010设置http://www.cnblogs.com/wubiyu/archive/2010/05/17/1737420.html
编译
#include "ntddk.h"
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
#if DBG
_asm int 3
#endif
DbgPrint("haha");
return STATUS_UNSUCCESSFUL;
}
成功,
但是再做寒江独钓第一个例子的时候(串口过滤那个)
调用ObDereferenceObject,
UNICODE_STRING name_str;
static WCHAR name[32] = { 0 };
PFILE_OBJECT fileobj = NULL;
PDEVICE_OBJECT devobj = NULL;
PVOID *p=NULL;
// 输入字符串。 总的作用:将已开辟内存空间 name 的首 sizeof(WCHAR)*32 个字节的值设为值 0。
memset(name,0,sizeof(WCHAR)*32);
RtlStringCchPrintfW(
name,32,
L"\\Device\\Serial%d",id);
RtlInitUnicodeString(&name_str,name);
// 打开设备对象
*status = IoGetDeviceObjectPointer(&name_str, FILE_ALL_ACCESS, &fileobj, &devobj);
if (*status == STATUS_SUCCESS)
ObDereferenceObject(fileobj);
链接时报SerialFilter.obj : error LNK2019: 无法解析的外部符号 _ObfDereferenceObject@4,该符号在函数 _ccpOpenCom@8 中被引用
其中
链接器设置如下
/OUT:"E:\profit\driver\DriverStudy\Driver\\Serialfilter.sys" /NOLOGO /LIBPATH:"E:\software\driver\winddk\lib\wxp\i386" "
ntoskrnl.lib" "hal.lib" "ntstrsafe.lib" "BufferOverflowK.lib" "ntdll.lib" "wdm.lib"[/COLOR] /NODEFAULTLIB /MANIFEST:NO /ManifestFile:"Driver\Serialfilter.sys.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"E:\profit\driver\DriverStudy\Driver\Serialfilter.pdb" /SUBSYSTEM:NATIVE /Driver /PGD:"E:\profit\driver\DriverStudy\Driver\Serialfilter.pgd" /TLBID:1 /ENTRY:"DriverEntry" /BASE:"0x10000" /MACHINE:X86 /ERRORREPORT:QUEUE
已经加了"ntoskrnl.lib" ,为什么还报找不到方法
我别的方法链接基本上都正常,像IoGetDeviceObjectPointer这些都没问题
另外还有
1: error LNK2019: 无法解析的外部符号 _IofCompleteRequest@8,该符号在函数 _SFdispatch@8 中被引用
1>: error LNK2019: 无法解析的外部符号 _IofCallDriver@8,该符号在函数 _SFdispatch@8 中被引用
这两个也是有问题的,
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!