我们从NDIS的驱动栈开始,系统在启动的时候(IoInitSystem…)会加载系统驱动,典型的比如卷过滤驱动Volsnap是从IopInitializeBootDrivers的IopInitializeBuiltinDriver中启动的,一般的Filter Driver则是在IopInitializeSystemDrivers的时候加载的,而各层的DriverEntry的顺序并一定按栈自底向上走(比如TCPIP调用NdisRegisterProtocolDriver,比Miniport的注册早),但是各自初始化完了,NDIS会接管开始调整栈结构,依次调用Miniport的MiniportInitializeEx,LightWeight Filter的FilterAttach,到最后的Protocol的ProtocolBindAdapterEx。
Monthly Archives: 二月 2010
How to adjust the Ace of device object
一直想给以前弄的东西写点什么或者给KP贡献点代码文档什么的,但是苦于一直没有时间,换工作,换住处,换了很多东西,也就没闲的下来抛砖了,难得要过年了,扔一块试试水深。
直接扔关键代码,不想写太多的说明,本来这些代码也只是副产品,眼尖的应该能看出来这些代码的来处和用处。
PACCESS_ALLOWED_ACE
GetAceFromAcl(
IN PACL Dacl,
IN ULONG AceIndex
)