annotate libdha/dhahelperwin/dhasetup.c @ 12058:fbb086fd4736

1000l
author faust3
date Tue, 23 Mar 2004 12:43:54 +0000
parents 0f058e9cd422
children 73ee9bd3b537
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12057
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
1 /*dhahelper setup program (c) 2004 Sascha Sommer*/
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
2 /*compile with gcc -o dhasetup.exe dhasetup.c */
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
3 /*LICENSE: GPL */
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
4
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
5 #include <windows.h>
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
6 #include <stdio.h>
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
7
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
8 int main(int argc,char* argv[]){
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
9 SC_HANDLE hSCManager;
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
10 SC_HANDLE hService;
12058
faust3
parents: 12057
diff changeset
11 char path[MAX_PATH];
12057
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
12 printf("dhasetup (c) 2004 Sascha Sommer\n");
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
13 if(argc==1){
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
14 printf("usage:\n");
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
15 printf("dhasetup install - copys dhahelper.sys from the current dir to windows/system32/drivers and configures it to start at system start\n");
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
16 printf("dhasetup remove - removes the dhahelper util\n");
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
17 return 0;
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
18 }
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
19 hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
12058
faust3
parents: 12057
diff changeset
20 GetWindowsDirectory(path,MAX_PATH);
faust3
parents: 12057
diff changeset
21 strcpy(path+strlen(path),"\\system32\\drivers\\dhahelper.sys");
12057
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
22 if(!strcmp(argv[1],"install")){
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
23 printf("installing dhahelper\n");
12058
faust3
parents: 12057
diff changeset
24 if(!CopyFile("dhahelper.sys",path,FALSE))
faust3
parents: 12057
diff changeset
25 printf("can't find dhahelper.sys\n");
12057
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
26 // Install the driver
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
27 hService = CreateService(hSCManager,
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
28 "DHAHELPER",
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
29 "DHAHELPER",
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
30 SERVICE_ALL_ACCESS,
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
31 SERVICE_KERNEL_DRIVER,
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
32 SERVICE_SYSTEM_START,
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
33 SERVICE_ERROR_NORMAL,
12058
faust3
parents: 12057
diff changeset
34 path,
12057
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
35 NULL,
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
36 NULL,
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
37 NULL,
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
38 NULL,
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
39 NULL);
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
40 }
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
41 else if(!strcmp(argv[1],"remove")){
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
42 SERVICE_STATUS ServiceStatus;
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
43 printf("removing dhahelper\n");
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
44 hService = OpenService(hSCManager, "DHAHELPER", SERVICE_ALL_ACCESS);
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
45 ControlService(hService, SERVICE_CONTROL_STOP, &ServiceStatus);
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
46 DeleteService(hService);
12058
faust3
parents: 12057
diff changeset
47 DeleteFile(path);
12057
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
48 }
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
49 else {
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
50 printf("unknown parameter: %s\n",argv[1]);
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
51 }
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
52 CloseServiceHandle(hService);
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
53 CloseServiceHandle(hSCManager);
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
54 printf("please reboot to let the changes take effect\n");
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
55 return 0;
0f058e9cd422 Windows XP support
faust3
parents:
diff changeset
56 }