Tre*_*reb 4 installation winapi driver
我想在Windows XP下安装Ext2分区的驱动程序,安装将使用自编写的Inno Setup脚本完成.我需要为此调用哪些API函数?从我到目前为止googled我似乎不需要一个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;
}
Run Code Online (Sandbox Code Playgroud)
您可能希望将SERVICE_ BOOT_ START用于文件系统驱动程序而不是SERVICE_ DEMAND_ START.如果您不能编写Inno脚本来执行上述操作,您可以始终从上面创建一个小EXE并让Inno将其作为后期安装运行.
如果您想沿着INF路线走下去,请查看这篇Microsoft文章.
归档时间: |
|
查看次数: |
3251 次 |
最近记录: |