gpt4 book ai didi

winapi - 在 Windows 中安装文件系统驱动程序的 api 函数是什么?

转载 作者:行者123 更新时间:2023-12-05 00:09:21 25 4
gpt4 key购买 nike

我想在 Windows XP 下为 Ext2 分区安装驱动程序,安装将使用自己编写的 Inno Setup 脚本完成。为此我需要调用哪些 API 函数?从我到目前为止的搜索结果来看,我似乎不需要 inf 文件,因此没有调用 SetupCopyOEMInf。但我不知道该怎么做……

请赐教!

最佳答案

当您询问安装驱动程序需要哪些 API 函数时,这里是一些我用来在 C 中加载驱动程序的代码:

bool LoadDriver( const char * cpDriverPath, const char * cpDriverName )
{
SC_HANDLE hSCService;
SC_HANDLE hSCManager;

hSCManager = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );
if( hSCManager == NULL )
return false;

hSCService = CreateService( hSCManager, cpDriverName, cpDriverName,
SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
cpDriverPath, NULL, NULL, NULL, NULL, NULL );

if( hSCService == NULL && GetLastError() == ERROR_SERVICE_EXISTS )
hSCService = OpenService( hSCManager, cpDriverName, SERVICE_ALL_ACCESS );

if( hSCService == NULL )
return false;

if( !StartService( hSCService, 0, NULL ) )
{
if( GetLastError() != ERROR_SERVICE_ALREADY_RUNNING )
return false;
}

CloseServiceHandle( hSCManager );
CloseServiceHandle( hSCService );

return true;
}

您可能希望对文件系统驱动程序使用 SERVICE_BOOT_START 而不是 SERVICE_DEMAND_START。如果您无法编写 Inno 脚本来执行上述操作,您总是可以从上面制作一个小 EXE,并让 Inno 将其作为安装后运行。

如果您想走 INF 路线,请查看 this Microsoft article .

关于winapi - 在 Windows 中安装文件系统驱动程序的 api 函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/499359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com