-
-
[解决]vs2010配置驱动开发
-
发表于:
2010-7-19 19:29
20775
-
我用的是vs2010和winddk7配合开发,vs2010设置
905K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4F1j5X3I4G2k6%4y4Q4x3X3g2U0L8$3#2Q4x3V1k6%4N6h3u0A6P5i4g2Q4x3V1k6S2M7X3y4Z5K9i4k6W2i4K6u0r3x3U0l9I4x3q4)9J5c8U0l9#2i4K6u0r3x3e0N6Q4x3V1j5I4y4K6x3%4y4o6t1H3i4K6u0W2K9s2c8E0L8l9`.`.
编译
#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 中被引用
这两个也是有问题的,
[培训]科锐逆向工程师培训第53期2025年7月8日开班!