① linux怎样加载文件过滤驱动
文件系统过滤驱动是一种可选的,为文件系统提供具有附加值功能的驱动程序。文件系统过滤驱动是一种核心模式组件,它作为Windows NT执行体的一部分运行。
文件系统过滤驱动可以过滤一个或多个文件系统或文件系统卷的I/O操作。按不同的种类划分,文件系统过滤驱动可以分成日志记录、系统监测、数据修改或事件预防几类。通常,以文件系统过滤驱动为核心的应用程序有防毒软件、加密程序、分级存储管理系统等。
二、文件系统过滤驱动并不是设备驱动
设备驱动是用来控制特定硬件I/O设备的软件组件。例如:DVD存储设备驱动是一个DVD驱动。
相反,文件系统过滤驱动与一个或多个文件系统协同工作来处理文件I/O操作。这些操作包括:创建、打开、关闭、枚举文件和目录;获取和设置文件、目录、卷的相关信息;向文件中读取或写入数据。另外,文件系统过滤驱动必须支持文件系统特定的功能,例如缓存、锁定、稀疏文件、磁盘配额、压缩、安全、可恢复性、还原点和卷装载等。
下面两部分详细的阐述了文件系统过滤驱动和设备驱动之间的相似点与不同点。
三、安装文件系统过滤驱动
对于Windows XP和后续操作系统来说,可以通过INI文件或安装应用程序来安装文件系统过滤驱动(对于Windows 2000和更早的操作系统,过滤驱动通常通过服务控制管理器Service Control Manager来进行安装)。
四、初始化文件系统过滤驱动
与设备驱动类似,文件系统过滤驱动也使用DriverEntry例程进行初始化工作。在驱动程序加载后,加载驱动相同的组件将通过调用驱动程序的 DriverEntry例程来对驱动程序进行初始化工作。对于文件系统过滤驱动来说,加载和初始化过滤驱动的系统组件为I/O管理器。
DriverEntry例程运行于系统线程上下文中,其IRQL = PASSIVE_LEVEL。本例程可分页,详细信息参见MmLockPagableCodeSection。
DriverEntry例程定义如下:
NTSTATUS
DriverEntry (
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
本例程有两个输入参数。第一个参数,DriverObject为系统在文件系统过滤驱动加载时所创建的驱动对象;第二个参数,RegistryPath为包含驱动程序注册键路径的Unicode字符串。
文件系统过滤驱动按如下顺序执行DriverEntry例程:
01、创建控制设备对象:
文件系统过滤驱动的DriverEntry例程通常以创建控制设备对象作为该例程的起始。创建控制设备对象的目的在于允许应用程序即使在过滤驱动加载到文件系统或卷设备对象之前也能够直接与过滤驱动进行通信。
注意:文件系统也会创建控制设备对象。当文件系统过滤驱动将其自身附加到文件系统之上时(而不是附加到某一特定文件系统卷),过滤驱动同样将其自身附加到文件系统的控制设备对象之上。
在FileSpy驱动范例中,控制设备对象按如下方式创建:
RtlInitUnicodeString(&nameString, FILESPY_FULLDEVICE_NAME);
status = IoCreateDevice(
DriverObject, //DriverObject
0, //DeviceExtensionSize
&nameString, //DeviceName
FILE_DEVICE_DISK_FILE_SYSTEM, //DeviceType
FILE_DEVICE_SECURE_OPEN, //DeviceCharacteristics
FALSE, //Exclusive
&gControlDeviceObject); //DeviceObject
RtlInitUnicodeString(&linkString, FILESPY_DOSDEVICE_NAME);
status = IoCreateSymbolicLink(&linkString, &nameString);
与文件系统不同,文件系统过滤驱动并不是一定要为其控制设备对象命名。如果传递给DeviceName参数一个非空(Non-NULL)值,该值将作为控制设备对象的名称。接下来,在前面的代码范例中DriverEntry可以调用IoCreateSymbolicLink例程来将该对象的核心模式名称与应用程序可见的用户模式名称关联到一起(同样可以通过调用IoRegisterDeviceInterface来使设备对象对应用程序可见)。
注意:由于控制设备对象是唯一不会附加到设备堆栈中的设备对象,因此控制设备对象是唯一的可安全命名的设备对象。由此,是否为文件系统过滤驱动的控制设备对象是否命名是可选的。
注意:文件系统的控制设备对象必须命名。过滤设备对象从不命名。
② Windows驱动编程和Linux驱动编程 区别大吗
原理是差不多的,但是所用的函数是不同的.一般都是用的c语言和少部分汇编
不过学驱动编程重要的不是编程而是理解操作系统的内核原理。当你理解了内核的原理剩下的只是学用那些函数而已。
你可以去看看<linux内核源代码情景分析>和<windows内核情景分析>
如果你只是想写几个驱动来玩玩的,你只以只看看<windows驱动开发技术详解>
如果你想成为高手那么内核原理的书是必看的。
③ 请教用文件过滤驱动的方式透明加密linux中的文件
文件系统过滤驱动是一种可选的,为文件系统提供具有附加值功能的驱动专程序。文件系统过滤驱动是一属种核心模式组件,它作为Windows NT执行体的一部分运行。 文件系统过滤驱动可以过滤一个或多个文件系统或文件系统卷的I/O操作。按不同的种类划分,...
④ 是做windows驱动还是linux驱动
linux驱动吧
现在智能家居什么的大部分都用的嵌入式Linux啊
⑤ 通过ul,Linux或者windows驱动程序的开发过程,如何理解设备是文件这一重要概念
都驱动开发了还问这么基础的问题,基础不行回头好好学习天天向上吧
⑥ WINDOWS如何把下载的驱动传递给LINUX
ftp、sftp、samba都可以
简单点儿Linux启动ftp服务,windows上传文件就可以了
⑦ windows驱动和linux驱动开发有什么不同对于刚刚接触的人,哪个开发容易些哪个更使用呢
没有什么根本的不同,同样的硬件通信类型,但面向的平台对象不同而已。
对于专刚刚接触驱动程序属编写的人来讲,开发UNIX/LINUX的驱动程序相对简
单一些,主要是因为WINDOWS本身对驱动程序的限制和其自身的版本太多
导致接口化程序编写的难度提高。相反UNIX家族的驱动程序设置基本上
是版本具备延续性,因此可以在编写的过程中有很多借鉴的。
⑧ 如何将WINDOWS和LINUX下的硬件驱动驱动,编译成MAC系统的
何必这么麻烦,你装两个系统不就行了,这两个系统间不太可能兼容得让你满意的.
⑨ Linux下有办法装Windows驱动吗
linux的驱动一般有两种格式,分别为:tar和rpm格式。 rpm安装步骤: 1.将驱动程序文件bcm5700-.src.rpm复制到一个临时目录中,并在此目录中运行以下命令: rpm –ivh bcm5700-.src.rpm 2.运行以下命令切换到驱动目录中: cd /usr/src/redhat/SP...
⑩ linux windows双系统,linux切换回windows网卡就没了,得重新安装驱动
楼主,这个问题解决了吗?我也是,如果解决了,能不能帮帮我,谢谢