/
/
driver.c
/
/
DriverEntry Routine
DRIVER_INITIALIZE DriverEntry;
/
/
Unload Routine
DRIVER_UNLOAD DriverUnload;
/
/
DriverEntry: 驱动程序的入口点
/
/
DriverObject: 驱动程序对象
/
/
RegistryPath: 注册表中的路径(驱动程序路径)
NTSTATUS
DriverEntry(
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
/
/
编译器默认的警告等级为
/
W4,
/
/
并且开启
/
WX 将警告视为错误,
/
/
对未引用的参数或变量会报错(C4100).
/
/
方法
1
: 删除参数名,或者注释掉参数名
/
/
方法
2
: 将警告等级设置为
/
W3 或者关闭
/
WX
/
/
方法
3
: 微软推荐使用 UNREFERENCED_PARAMETER
/
/
UNREFERENCED_PARAMETER 啥也没干,只是一个空引用的宏.
UNREFERENCED_PARAMETER(RegistryPath);
/
/
非WDM驱动(NT) Unload Routine 是可选的.
/
/
如果不设置 Unload Routine,正常情况下驱动模块将无法被卸载
DriverObject
-
>DriverUnload
=
DriverUnload;
/
/
如果 DriverEntry 返回值不为 STATUS_SUCCESS,
/
/
驱动将不会被加载,Unload Routine 也不会被调用
return
STATUS_SUCCESS;
}
/
/
Unload Routine
VOID DriverUnload(_In_ PDRIVER_OBJECT DriverObject)
{
UNREFERENCED_PARAMETER(DriverObject);
}