我们有一个需要驱动程序的应用程序。作为实验和测试目的,我们考虑使用基于mcr.microsoft.com/windows/servercore:1903-amd64
. 主机操作系统是 Windows 10 1903,它是一款开发笔记本电脑。该驱动程序是一个minifilter文件系统驱动程序,它似乎安装OK,但启动失败。应用程序本身是在 x64/x86 上运行的 32 位可移植可执行文件。
是否可以在 Windows Server docker 映像中安装和运行 minifilter 文件系统驱动程序?
在 docker 实例上运行的命令的输出sc
如下:
C:\>sc start foo
SERVICE_NAME: foo
TYPE : 2 FILE_SYSTEM_DRIVER
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 0
FLAGS :
C:\>sc query foo
SERVICE_NAME: foo
TYPE : 2 FILE_SYSTEM_DRIVER
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
C:\>fltmc
The FltMgr.sys driver is not currently loaded.
目前没有办法在 Windows 容器中安装驱动程序。
但是,Windows 上的容器可以利用主机操作系统上存在的驱动程序。
Unit42 关于逆向工程 Windows 容器的博客文章描述了 Windows 容器的一些内部工作原理。它指出过滤发生在系统调用级别:
您可以在此处找到整个博客文章以了解更多详细信息:我从逆向工程 Windows 容器中学到的东西