1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS net command 4 * FILE: base/applications/network/net/cmdPause.c 5 * PURPOSE: 6 * 7 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org> 8 */ 9 10 #include "net.h" 11 12 INT cmdPause(INT argc, WCHAR **argv) 13 { 14 SC_HANDLE hManager = NULL; 15 SC_HANDLE hService = NULL; 16 SERVICE_STATUS status; 17 INT nError = 0; 18 INT i; 19 20 if (argc != 3) 21 { 22 PrintMessageString(4381); 23 ConPuts(StdOut, L"\n"); 24 PrintNetMessage(MSG_PAUSE_SYNTAX); 25 return 1; 26 } 27 28 for (i = 2; i < argc; i++) 29 { 30 if (_wcsicmp(argv[i], L"/help") == 0) 31 { 32 PrintMessageString(4381); 33 ConPuts(StdOut, L"\n"); 34 PrintNetMessage(MSG_PAUSE_SYNTAX); 35 PrintNetMessage(MSG_PAUSE_HELP); 36 return 1; 37 } 38 } 39 40 hManager = OpenSCManager(NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ENUMERATE_SERVICE); 41 if (hManager == NULL) 42 { 43 ConPrintf(StdErr, L"[OpenSCManager] Error: %ld\n", GetLastError()); 44 nError = 1; 45 goto done; 46 } 47 48 hService = OpenService(hManager, argv[2], SERVICE_PAUSE_CONTINUE); 49 if (hService == NULL) 50 { 51 ConPrintf(StdErr, L"[OpenService] Error: %ld\n", GetLastError()); 52 nError = 1; 53 goto done; 54 } 55 56 if (!ControlService(hService, SERVICE_CONTROL_PAUSE, &status)) 57 { 58 ConPrintf(StdErr, L"[ControlService] Error: %ld\n", GetLastError()); 59 } 60 61 done: 62 if (hService != NULL) 63 CloseServiceHandle(hService); 64 65 if (hManager != NULL) 66 CloseServiceHandle(hManager); 67 68 return nError; 69 } 70 71 /* EOF */ 72 73