我想在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; }
您可能希望将SERVICE_ BOOT_ START用于文件系统驱动程序而不是SERVICE_ DEMAND_ START.如果您不能编写Inno脚本来执行上述操作,您可以始终从上面创建一个小EXE并让Inno将其作为后期安装运行.
如果您想沿着INF路线走下去,请查看这篇Microsoft文章.