15331Samw /* 25331Samw * CDDL HEADER START 35331Samw * 45331Samw * The contents of this file are subject to the terms of the 55331Samw * Common Development and Distribution License (the "License"). 65331Samw * You may not use this file except in compliance with the License. 75331Samw * 85331Samw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 95331Samw * or http://www.opensolaris.org/os/licensing. 105331Samw * See the License for the specific language governing permissions 115331Samw * and limitations under the License. 125331Samw * 135331Samw * When distributing Covered Code, include this CDDL HEADER in each 145331Samw * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 155331Samw * If applicable, add the following below this CDDL HEADER, with the 165331Samw * fields enclosed by brackets "[]" replaced with your own identifying 175331Samw * information: Portions Copyright [yyyy] [name of copyright owner] 185331Samw * 195331Samw * CDDL HEADER END 205331Samw */ 215331Samw /* 2210001SJoyce.McIntosh@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 235331Samw * Use is subject to license terms. 245331Samw */ 255331Samw 265331Samw #ifndef _SMBSRV_WINSVC_H 275331Samw #define _SMBSRV_WINSVC_H 285331Samw 295331Samw /* 305331Samw * NT Service Control interface definition for the Service Control 315331Samw * Manager (SCM). 325331Samw */ 335331Samw 345331Samw #ifdef __cplusplus 355331Samw extern "C" { 365331Samw #endif 375331Samw 385331Samw /* 395331Samw * Service types (Bit Mask). 405331Samw * 415331Samw * SERVICE_WIN32_OWN_PROCESS The service runs in its own process. 425331Samw * SERVICE_WIN32_SHARE_PROCESS The service shares a process with other 435331Samw * services. 445331Samw */ 455331Samw #define SERVICE_KERNEL_DRIVER 0x00000001 465331Samw #define SERVICE_FILE_SYSTEM_DRIVER 0x00000002 475331Samw #define SERVICE_ADAPTER 0x00000004 485331Samw #define SERVICE_RECOGNIZER_DRIVER 0x00000008 495331Samw #define SERVICE_WIN32_OWN_PROCESS 0x00000010 505331Samw #define SERVICE_WIN32_SHARE_PROCESS 0x00000020 515331Samw #define SERVICE_INTERACTIVE_PROCESS 0x00000100 525331Samw 535331Samw #define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER \ 545331Samw | SERVICE_FILE_SYSTEM_DRIVER \ 555331Samw | SERVICE_RECOGNIZER_DRIVER) 565331Samw 575331Samw #define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS \ 585331Samw | SERVICE_WIN32_SHARE_PROCESS) 595331Samw 605331Samw #define SERVICE_TYPE_ALL (SERVICE_WIN32 \ 615331Samw | SERVICE_ADAPTER \ 625331Samw | SERVICE_DRIVER \ 635331Samw | SERVICE_INTERACTIVE_PROCESS) 645331Samw 655331Samw /* 665331Samw * Start type. 675331Samw */ 685331Samw #define SERVICE_BOOT_START 0x00000000 695331Samw #define SERVICE_SYSTEM_START 0x00000001 705331Samw #define SERVICE_AUTO_START 0x00000002 715331Samw #define SERVICE_DEMAND_START 0x00000003 725331Samw #define SERVICE_DISABLED 0x00000004 735331Samw 745331Samw /* 755331Samw * Error control type. 765331Samw */ 775331Samw #define SERVICE_ERROR_IGNORE 0x00000000 785331Samw #define SERVICE_ERROR_NORMAL 0x00000001 795331Samw #define SERVICE_ERROR_SEVERE 0x00000002 805331Samw #define SERVICE_ERROR_CRITICAL 0x00000003 815331Samw 825331Samw /* 835331Samw * Value to indicate no change to an optional parameter. 845331Samw */ 855331Samw #define SERVICE_NO_CHANGE 0xffffffff 865331Samw 875331Samw /* 885331Samw * Service State - for Enum Requests (Bit Mask). 895331Samw */ 905331Samw #define SERVICE_ACTIVE 0x00000001 915331Samw #define SERVICE_INACTIVE 0x00000002 925331Samw #define SERVICE_STATE_ALL (SERVICE_ACTIVE | SERVICE_INACTIVE) 935331Samw 945331Samw /* 955331Samw * Controls 965331Samw */ 975331Samw #define SERVICE_CONTROL_STOP 0x00000001 985331Samw #define SERVICE_CONTROL_PAUSE 0x00000002 995331Samw #define SERVICE_CONTROL_CONTINUE 0x00000003 1005331Samw #define SERVICE_CONTROL_INTERROGATE 0x00000004 1015331Samw #define SERVICE_CONTROL_SHUTDOWN 0x00000005 1025331Samw #define SERVICE_CONTROL_PARAMCHANGE 0x00000006 1035331Samw #define SERVICE_CONTROL_NETBINDADD 0x00000007 1045331Samw #define SERVICE_CONTROL_NETBINDREMOVE 0x00000008 1055331Samw #define SERVICE_CONTROL_NETBINDENABLE 0x00000009 1065331Samw #define SERVICE_CONTROL_NETBINDDISABLE 0x0000000A 1075331Samw 1085331Samw /* 1095331Samw * Service State -- for CurrentState 1105331Samw */ 1115331Samw #define SERVICE_STOPPED 0x00000001 1125331Samw #define SERVICE_START_PENDING 0x00000002 1135331Samw #define SERVICE_STOP_PENDING 0x00000003 1145331Samw #define SERVICE_RUNNING 0x00000004 1155331Samw #define SERVICE_CONTINUE_PENDING 0x00000005 1165331Samw #define SERVICE_PAUSE_PENDING 0x00000006 1175331Samw #define SERVICE_PAUSED 0x00000007 1185331Samw 1195331Samw /* 1205331Samw * Controls Accepted (Bit Mask) 1215331Samw * 1225331Samw * SERVICE_ACCEPT_NETBINDCHANGE 1235331Samw * Windows 2000/XP: The service is a network component that 1245331Samw * can accept changes in its binding without being stopped and restarted. 1255331Samw * This control code allows the service to receive SERVICE_CONTROL_NETBINDADD, 1265331Samw * SERVICE_CONTROL_NETBINDREMOVE, SERVICE_CONTROL_NETBINDENABLE, and 1275331Samw * SERVICE_CONTROL_NETBINDDISABLE notifications. 1285331Samw * 1295331Samw * SERVICE_ACCEPT_PARAMCHANGE 1305331Samw * Windows 2000/XP: The service can reread its startup parameters without 1315331Samw * being stopped and restarted. This control code allows the service to 1325331Samw * receive SERVICE_CONTROL_PARAMCHANGE notifications. 1335331Samw * 1345331Samw * SERVICE_ACCEPT_PAUSE_CONTINUE 1355331Samw * The service can be paused and continued. This control code allows the 1365331Samw * service to receive SERVICE_CONTROL_PAUSE and SERVICE_CONTROL_CONTINUE 1375331Samw * notifications. 1385331Samw * 1395331Samw * SERVICE_ACCEPT_SHUTDOWN 1405331Samw * The service is notified when system shutdown occurs. This control code 1415331Samw * allows the service to receive SERVICE_CONTROL_SHUTDOWN notifications. 1425331Samw * Note that ControlService cannot send this notification; only the system 1435331Samw * can send it. 1445331Samw * 1455331Samw * SERVICE_ACCEPT_STOP 1465331Samw * The service can be stopped. This control code allows the service to 1475331Samw * receive SERVICE_CONTROL_STOP notifications. 1485331Samw */ 1495331Samw #define SERVICE_ACCEPT_STOP 0x00000001 1505331Samw #define SERVICE_ACCEPT_PAUSE_CONTINUE 0x00000002 1515331Samw #define SERVICE_ACCEPT_SHUTDOWN 0x00000004 1525331Samw #define SERVICE_ACCEPT_PARAMCHANGE 0x00000008 1535331Samw #define SERVICE_ACCEPT_NETBINDCHANGE 0x00000010 1545331Samw 1555331Samw /* 1565331Samw * Service Control Manager object specific access types. 1575331Samw */ 1585331Samw #define SC_MANAGER_CONNECT 0x0001 1595331Samw #define SC_MANAGER_CREATE_SERVICE 0x0002 1605331Samw #define SC_MANAGER_ENUMERATE_SERVICE 0x0004 1615331Samw #define SC_MANAGER_LOCK 0x0008 1625331Samw #define SC_MANAGER_QUERY_LOCK_STATUS 0x0010 1635331Samw #define SC_MANAGER_MODIFY_BOOT_CONFIG 0x0020 1645331Samw 1655331Samw #define SC_MANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED \ 1665331Samw | SC_MANAGER_CONNECT \ 1675331Samw | SC_MANAGER_CREATE_SERVICE \ 1685331Samw | SC_MANAGER_ENUMERATE_SERVICE \ 1695331Samw | SC_MANAGER_LOCK \ 1705331Samw | SC_MANAGER_QUERY_LOCK_STATUS \ 1715331Samw | SC_MANAGER_MODIFY_BOOT_CONFIG) 1725331Samw 1735331Samw /* 1745331Samw * Service object specific access type. 1755331Samw */ 1765331Samw #define SERVICE_QUERY_CONFIG 0x0001 1775331Samw #define SERVICE_CHANGE_CONFIG 0x0002 1785331Samw #define SERVICE_QUERY_STATUS 0x0004 1795331Samw #define SERVICE_ENUMERATE_DEPENDENTS 0x0008 1805331Samw #define SERVICE_START 0x0010 1815331Samw #define SERVICE_STOP 0x0020 1825331Samw #define SERVICE_PAUSE_CONTINUE 0x0040 1835331Samw #define SERVICE_INTERROGATE 0x0080 1845331Samw #define SERVICE_USER_DEFINED_CONTROL 0x0100 1855331Samw 1865331Samw #define SERVICE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED \ 1875331Samw | SERVICE_QUERY_CONFIG \ 1885331Samw | SERVICE_CHANGE_CONFIG \ 1895331Samw | SERVICE_QUERY_STATUS \ 1905331Samw | SERVICE_ENUMERATE_DEPENDENTS \ 1915331Samw | SERVICE_START \ 1925331Samw | SERVICE_STOP \ 1935331Samw | SERVICE_PAUSE_CONTINUE \ 1945331Samw | SERVICE_INTERROGATE \ 1955331Samw | SERVICE_USER_DEFINED_CONTROL) 1965331Samw 1975331Samw /* 1985331Samw * Info levels for ChangeServiceConfig2 and QueryServiceConfig2. 1995331Samw */ 200*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_DESCRIPTION 1 201*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_FAILURE_ACTIONS 2 202*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3 203*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4 204*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_SERVICE_SID_INFO 5 205*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6 206*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_PRESHUTDOWN_INFO 7 207*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_TRIGGER_INFO 8 208*10504SKeyur.Desai@Sun.COM #define SERVICE_CONFIG_PREFERRED_NODE 9 2095331Samw 2105331Samw /* 2115331Samw * Actions to take on service failure (SC_ACTION_TYPE). 2125331Samw */ 2135331Samw #define SC_ACTION_NONE 0 2145331Samw #define SC_ACTION_RESTART 1 2155331Samw #define SC_ACTION_REBOOT 2 2165331Samw #define SC_ACTION_RUN_COMMAND 3 2175331Samw 21810001SJoyce.McIntosh@Sun.COM /* 21910001SJoyce.McIntosh@Sun.COM * Information level for QueryServiceStatusEx 22010001SJoyce.McIntosh@Sun.COM */ 22110001SJoyce.McIntosh@Sun.COM #define SC_STATUS_PROCESS_INFO 0 22210001SJoyce.McIntosh@Sun.COM 2235331Samw #ifdef __cplusplus 2245331Samw } 2255331Samw #endif 2265331Samw 2275331Samw #endif /* _SMBSRV_WINSVC_H */ 228