//加载驱动
void CMyLoadDriverDlg::OnLoad()
{
if (m_csDriverPath.GetLength() == 0)
{
SetDlgItemText(IDC_STATIC_STATUS, "请输入正确文件路径");
return;
}
//打开服务管理器
SC_HANDLE hSc = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (hSc == NULL)
{
SetDlgItemText(IDC_STATIC_STATUS, "打开管理器失败");
return;
}
//创建服务
SC_HANDLE hService = CreateService(hSc,
m_csDriverName,
m_csDriverName,
SERVICE_ALL_ACCESS,
SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
m_csDriverPath,
NULL, NULL, NULL, NULL, NULL);
if (hService == NULL)
{
if (GetLastError() != ERROR_SERVICE_EXISTS)
{
SetDlgItemText(IDC_STATIC_STATUS, "安装失败");
}
else
{
SetDlgItemText(IDC_STATIC_STATUS, "服务已存在");
}
CloseServiceHandle(hSc);
return;
}
SetDlgItemText(IDC_STATIC_STATUS, "安装成功");
CloseServiceHandle(hSc);
CloseServiceHandle(hService);
}