作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
声明 PNDIS_GENERIC_OBJECT
变量后,我收到编译器错误。为什么会发生这种情况,如何避免?
#include <ntddk.h>
#include <ndis.h>
PNDIS_GENERIC_OBJECT gNdisGenericObj;
VOID DriverUnload(IN PDRIVER_OBJECT driverObject){
UNREFERENCED_PARAMETER(driverObject);
}
NTSTATUS DriverEntry( IN PDRIVER_OBJECT driverObject,
IN PUNICODE_STRING registryPath)
{
NTSTATUS status = STATUS_SUCCESS;
if (driverObject != NULL)
driverObject->DriverUnload = DriverUnload;
return status;
}
error C2061: syntax error : identifier 'gNdisGenericObj'
error C2059: syntax error : ';'
最佳答案
您必须使用适当的 NDIS 版本定义来编译代码。我将引用 Windows 开发者预览版中 NDIS.H 的顶部内容:
/*
Before including this header, you must define one or more macros. In all
examples, "630" can be any version number (as explained later).
1. If you are compiling a kernel-mode miniport driver, define:
#define NDIS_MINIPORT_DRIVER 1
#define NDIS630_MINIPORT 1
Additionally, if you are compiling a WDM or WDF (i.e., KMDF) driver,
you must include wdm.h/wdf.h before including ndis.h, and also define:
#define NDIS_WDM
2. If you are compiling any other kernel-mode code (including protocol
drivers, lightweight filters, or generic code not using the NDIS
driver model), define:
#define NDIS630
3. An IM driver, because it is both a protocol and a miniport, should
follow both 1. and 2. above.
4. If you would like to use NDIS definitions from user-mode, do not
include this ndis.h header. Instead, include ntddndis.h from the SDK.
Before including it, include windows.h, and define:
#define UM_NDIS630
Definitions with NDIS version numbers may use any of the following:
Version First available in
------------------------------------------------------------------
630 Windows "8" / Windows Server "8"
620 Windows 7 / Windows Server 2008 R2
61 Windows Vista SP1 / Windows Server 2008 RTM
60 Windows Vista RTM
52 Windows Server 2003 R2 / Windows Server 2003 + SNP
51 Windows XP / Windows Server 2003
50 Windows 2000
40 Windows 95
Code should define only the versions it explicitly supports at runtime. In
most cases, this is exactly one version (e.g., your driver only defines
NDIS630 and no other versions). But if you have a driver that can register
either a 6.0 or a 6.20 protocol at runtime based on the results of
NdisGetVersion(), then you may define support for multiple macros (e.g.,
define both NDIS60 and NDIS630).
*/
总而言之,使用 -DNDIS60=1
等标志进行编译,就可以开始了。
关于c - PNDIS_GENERIC_OBJECT 错误 C2061,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9332017/
声明 PNDIS_GENERIC_OBJECT 变量后,我收到编译器错误。为什么会发生这种情况,如何避免? #include #include PNDIS_GENERIC_OBJECT gNdis
我是一名优秀的程序员,十分优秀!