windows-pr 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +444 -438
  3. data/MANIFEST +68 -65
  4. data/README +154 -153
  5. data/Rakefile +42 -37
  6. data/doc/conversion_guide.txt +37 -37
  7. data/lib/windows/clipboard.rb +61 -61
  8. data/lib/windows/com.rb +192 -192
  9. data/lib/windows/com/accessibility.rb +16 -16
  10. data/lib/windows/com/automation.rb +149 -149
  11. data/lib/windows/com/variant.rb +24 -24
  12. data/lib/windows/console.rb +114 -114
  13. data/lib/windows/debug.rb +35 -35
  14. data/lib/windows/device_io.rb +248 -248
  15. data/lib/windows/directory.rb +27 -27
  16. data/lib/windows/error.rb +504 -498
  17. data/lib/windows/eventlog.rb +80 -80
  18. data/lib/windows/file.rb +264 -264
  19. data/lib/windows/file_mapping.rb +25 -25
  20. data/lib/windows/filesystem.rb +15 -15
  21. data/lib/windows/gdi/bitmap.rb +65 -65
  22. data/lib/windows/gdi/device_context.rb +46 -46
  23. data/lib/windows/gdi/metafile.rb +40 -40
  24. data/lib/windows/gdi/painting_drawing.rb +115 -115
  25. data/lib/windows/handle.rb +23 -23
  26. data/lib/windows/library.rb +44 -44
  27. data/lib/windows/limits.rb +34 -34
  28. data/lib/windows/mailslot.rb +24 -24
  29. data/lib/windows/memory.rb +128 -128
  30. data/lib/windows/msvcrt/buffer.rb +75 -75
  31. data/lib/windows/msvcrt/directory.rb +31 -31
  32. data/lib/windows/msvcrt/file.rb +47 -47
  33. data/lib/windows/msvcrt/io.rb +73 -73
  34. data/lib/windows/msvcrt/string.rb +182 -182
  35. data/lib/windows/msvcrt/time.rb +169 -169
  36. data/lib/windows/national.rb +580 -580
  37. data/lib/windows/network/management.rb +525 -525
  38. data/lib/windows/network/snmp.rb +92 -92
  39. data/lib/windows/network/winsock.rb +128 -128
  40. data/lib/windows/nio.rb +50 -50
  41. data/lib/windows/ntfs/winternl.rb +117 -117
  42. data/lib/windows/path.rb +143 -143
  43. data/lib/windows/pipe.rb +42 -42
  44. data/lib/windows/process.rb +176 -176
  45. data/lib/windows/registry.rb +171 -171
  46. data/lib/windows/security.rb +479 -479
  47. data/lib/windows/security/authentication.rb +32 -32
  48. data/lib/windows/security/sspi.rb +153 -0
  49. data/lib/windows/service.rb +142 -142
  50. data/lib/windows/shell.rb +171 -171
  51. data/lib/windows/socket.rb +86 -86
  52. data/lib/windows/sound.rb +39 -39
  53. data/lib/windows/synchronize.rb +133 -133
  54. data/lib/windows/system_info.rb +229 -229
  55. data/lib/windows/thread.rb +64 -64
  56. data/lib/windows/time.rb +48 -48
  57. data/lib/windows/tool_helper.rb +36 -36
  58. data/lib/windows/unicode.rb +155 -155
  59. data/lib/windows/volume.rb +61 -61
  60. data/lib/windows/window.rb +81 -81
  61. data/lib/windows/window/classes.rb +59 -59
  62. data/lib/windows/window/dialog.rb +91 -91
  63. data/lib/windows/window/menu.rb +102 -102
  64. data/lib/windows/window/message.rb +297 -297
  65. data/lib/windows/window/properties.rb +20 -20
  66. data/lib/windows/window/timer.rb +19 -19
  67. data/lib/windows/wsa.rb +102 -102
  68. data/test/tc_clipboard.rb +41 -41
  69. data/test/tc_com.rb +32 -32
  70. data/test/tc_com_automation.rb +15 -15
  71. data/test/tc_console.rb +108 -108
  72. data/test/tc_debug.rb +48 -48
  73. data/test/tc_device_io.rb +29 -29
  74. data/test/tc_directory.rb +25 -25
  75. data/test/tc_error.rb +38 -38
  76. data/test/tc_eventlog.rb +58 -58
  77. data/test/tc_file.rb +67 -67
  78. data/test/tc_file_mapping.rb +38 -38
  79. data/test/tc_filesystem.rb +27 -27
  80. data/test/tc_gdi_bitmap.rb +25 -25
  81. data/test/tc_gdi_metafile.rb +23 -23
  82. data/test/tc_handle.rb +36 -36
  83. data/test/tc_library.rb +37 -37
  84. data/test/tc_limits.rb +34 -34
  85. data/test/tc_mailslot.rb +22 -22
  86. data/test/tc_memory.rb +44 -44
  87. data/test/tc_msvcrt_buffer.rb +63 -63
  88. data/test/tc_msvcrt_directory.rb +96 -96
  89. data/test/tc_msvcrt_file.rb +80 -80
  90. data/test/tc_msvcrt_io.rb +48 -48
  91. data/test/tc_msvcrt_string.rb +94 -94
  92. data/test/tc_msvcrt_time.rb +19 -19
  93. data/test/tc_national.rb +38 -38
  94. data/test/tc_network_management.rb +32 -32
  95. data/test/tc_network_snmp.rb +31 -31
  96. data/test/tc_network_winsock.rb +34 -34
  97. data/test/tc_nio.rb +32 -32
  98. data/test/tc_ntfs_winternl.rb +48 -48
  99. data/test/tc_path.rb +90 -90
  100. data/test/tc_pipe.rb +53 -53
  101. data/test/tc_process.rb +24 -24
  102. data/test/tc_registry.rb +29 -29
  103. data/test/tc_security.rb +104 -104
  104. data/test/tc_security_authentication.rb +34 -34
  105. data/test/tc_security_sspi.rb +23 -0
  106. data/test/tc_service.rb +57 -57
  107. data/test/tc_shell.rb +34 -34
  108. data/test/tc_socket.rb +20 -20
  109. data/test/tc_sound.rb +37 -37
  110. data/test/tc_synchronize.rb +75 -75
  111. data/test/tc_system_info.rb +33 -33
  112. data/test/tc_thread.rb +29 -29
  113. data/test/tc_time.rb +32 -32
  114. data/test/tc_tool_helper.rb +29 -29
  115. data/test/tc_unicode.rb +83 -83
  116. data/test/tc_volume.rb +47 -47
  117. data/test/tc_window.rb +45 -45
  118. data/test/tc_window_classes.rb +33 -33
  119. data/test/tc_window_dialog.rb +33 -33
  120. data/test/tc_window_menu.rb +29 -29
  121. data/test/tc_window_message.rb +33 -33
  122. data/test/tc_window_properties.rb +29 -29
  123. data/test/tc_window_timer.rb +29 -29
  124. data/test/tc_wsa.rb +19 -19
  125. data/windows-pr.gemspec +33 -34
  126. metadata +31 -32
@@ -1,32 +1,32 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Security
5
- module Authentication
6
- API.auto_namespace = 'Windows::Security::Authentication'
7
- API.auto_constant = true
8
- API.auto_method = true
9
- API.auto_unicode = false
10
-
11
- private
12
-
13
- POLICY_VIEW_LOCAL_INFORMATION = 0x00000001
14
- POLICY_VIEW_AUDIT_INFORMATION = 0x00000002
15
- POLICY_GET_PRIVATE_INFORMATION = 0x00000004
16
- POLICY_TRUST_ADMIN = 0x00000008
17
- POLICY_CREATE_ACCOUNT = 0x00000010
18
- POLICY_CREATE_SECRET = 0x00000020
19
- POLICY_CREATE_PRIVILEGE = 0x00000040
20
- POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x00000080
21
- POLICY_SET_AUDIT_REQUIREMENTS = 0x00000100
22
- POLICY_AUDIT_LOG_ADMIN = 0x00000200
23
- POLICY_SERVER_ADMIN = 0x00000400
24
- POLICY_LOOKUP_NAMES = 0x00000800
25
- POLICY_NOTIFICATION = 0x00001000
26
-
27
- API.new('LsaOpenPolicy', 'PPLP', 'L', 'advapi32')
28
- API.new('LsaClose', 'L', 'L', 'advapi32')
29
- API.new('LsaNtStatusToWinError', 'L', 'L', 'advapi32')
30
- end
31
- end
32
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Security
5
+ module Authentication
6
+ API.auto_namespace = 'Windows::Security::Authentication'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = false
10
+
11
+ private
12
+
13
+ POLICY_VIEW_LOCAL_INFORMATION = 0x00000001
14
+ POLICY_VIEW_AUDIT_INFORMATION = 0x00000002
15
+ POLICY_GET_PRIVATE_INFORMATION = 0x00000004
16
+ POLICY_TRUST_ADMIN = 0x00000008
17
+ POLICY_CREATE_ACCOUNT = 0x00000010
18
+ POLICY_CREATE_SECRET = 0x00000020
19
+ POLICY_CREATE_PRIVILEGE = 0x00000040
20
+ POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x00000080
21
+ POLICY_SET_AUDIT_REQUIREMENTS = 0x00000100
22
+ POLICY_AUDIT_LOG_ADMIN = 0x00000200
23
+ POLICY_SERVER_ADMIN = 0x00000400
24
+ POLICY_LOOKUP_NAMES = 0x00000800
25
+ POLICY_NOTIFICATION = 0x00001000
26
+
27
+ API.new('LsaOpenPolicy', 'PPLP', 'L', 'advapi32')
28
+ API.new('LsaClose', 'L', 'L', 'advapi32')
29
+ API.new('LsaNtStatusToWinError', 'L', 'L', 'advapi32')
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,153 @@
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Security
5
+ module SSPI
6
+ API.auto_namespace = 'Windows::Security::SSPI'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = true
10
+
11
+ private
12
+
13
+ SECPKG_CRED_INBOUND = 0x00000001
14
+ SECPKG_CRED_OUTBOUND = 0x00000002
15
+ SECPKG_CRED_BOTH = 0x00000003
16
+ SECPKG_CRED_AUTOLOGON_RESTRICTED = 0x00000010
17
+ SECPKG_CRED_PROCESS_POLICY_ONLY = 0x00000020
18
+
19
+ SECPKG_ATTR_SIZES = 0
20
+ SECPKG_ATTR_NAMES = 1
21
+ SECPKG_ATTR_LIFESPAN = 2
22
+ SECPKG_ATTR_DCE_INFO = 3
23
+ SECPKG_ATTR_STREAM_SIZES = 4
24
+ SECPKG_ATTR_KEY_INFO = 5
25
+ SECPKG_ATTR_AUTHORITY = 6
26
+ SECPKG_ATTR_PROTO_INFO = 7
27
+ SECPKG_ATTR_PASSWORD_EXPIRY = 8
28
+ SECPKG_ATTR_SESSION_KEY = 9
29
+ SECPKG_ATTR_PACKAGE_INFO = 10
30
+ SECPKG_ATTR_USER_FLAGS = 11
31
+ SECPKG_ATTR_NEGOTIATION_INFO = 12
32
+ SECPKG_ATTR_NATIVE_NAMES = 13
33
+ SECPKG_ATTR_FLAGS = 14
34
+ SECPKG_ATTR_USE_VALIDATED = 15
35
+ SECPKG_ATTR_CREDENTIAL_NAME = 16
36
+ SECPKG_ATTR_TARGET_INFORMATION = 17
37
+ SECPKG_ATTR_ACCESS_TOKEN = 18
38
+ SECPKG_ATTR_TARGET = 19
39
+ SECPKG_ATTR_AUTHENTICATION_ID = 20
40
+ SECPKG_ATTR_LOGOFF_TIME = 21
41
+ SECPKG_ATTR_NEGO_KEYS = 22
42
+ SECPKG_ATTR_PROMPTING_NEEDED = 24
43
+ SECPKG_ATTR_UNIQUE_BINDINGS = 25
44
+ SECPKG_ATTR_ENDPOINT_BINDINGS = 26
45
+ SECPKG_ATTR_CLIENT_SPECIFIED_TARGET = 27
46
+ SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS = 30
47
+ SECPKG_ATTR_NEGO_PKG_INFO = 31
48
+ SECPKG_ATTR_NEGO_STATUS = 32
49
+ SECPKG_ATTR_CONTEXT_DELETED = 33
50
+
51
+ SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES = 128
52
+
53
+ SECURITY_NATIVE_DREP = 0x00000010
54
+ SECURITY_NETWORK_DREP = 0x00000000
55
+
56
+ ISC_REQ_DELEGATE = 0x00000001
57
+ ISC_REQ_MUTUAL_AUTH = 0x00000002
58
+ ISC_REQ_REPLAY_DETECT = 0x00000004
59
+ ISC_REQ_SEQUENCE_DETECT = 0x00000008
60
+ ISC_REQ_CONFIDENTIALITY = 0x00000010
61
+ ISC_REQ_USE_SESSION_KEY = 0x00000020
62
+ ISC_REQ_PROMPT_FOR_CREDS = 0x00000040
63
+ ISC_REQ_USE_SUPPLIED_CREDS = 0x00000080
64
+ ISC_REQ_ALLOCATE_MEMORY = 0x00000100
65
+ ISC_REQ_USE_DCE_STYLE = 0x00000200
66
+ ISC_REQ_DATAGRAM = 0x00000400
67
+ ISC_REQ_CONNECTION = 0x00000800
68
+ ISC_REQ_CALL_LEVEL = 0x00001000
69
+ ISC_REQ_FRAGMENT_SUPPLIED = 0x00002000
70
+ ISC_REQ_EXTENDED_ERROR = 0x00004000
71
+ ISC_REQ_STREAM = 0x00008000
72
+ ISC_REQ_INTEGRITY = 0x00010000
73
+ ISC_REQ_IDENTIFY = 0x00020000
74
+ ISC_REQ_NULL_SESSION = 0x00040000
75
+ ISC_REQ_MANUAL_CRED_VALIDATION = 0x00080000
76
+ ISC_REQ_RESERVED1 = 0x00100000
77
+ ISC_REQ_FRAGMENT_TO_FIT = 0x00200000
78
+ ISC_REQ_FORWARD_CREDENTIALS = 0x00400000
79
+ ISC_REQ_NO_INTEGRITY = 0x00800000 # honored only by SPNEGO
80
+ ISC_REQ_USE_HTTP_STYLE = 0x01000000
81
+
82
+ ASC_REQ_DELEGATE = 0x00000001
83
+ ASC_REQ_MUTUAL_AUTH = 0x00000002
84
+ ASC_REQ_REPLAY_DETECT = 0x00000004
85
+ ASC_REQ_SEQUENCE_DETECT = 0x00000008
86
+ ASC_REQ_CONFIDENTIALITY = 0x00000010
87
+ ASC_REQ_USE_SESSION_KEY = 0x00000020
88
+ ASC_REQ_ALLOCATE_MEMORY = 0x00000100
89
+ ASC_REQ_USE_DCE_STYLE = 0x00000200
90
+ ASC_REQ_DATAGRAM = 0x00000400
91
+ ASC_REQ_CONNECTION = 0x00000800
92
+ ASC_REQ_CALL_LEVEL = 0x00001000
93
+ ASC_REQ_EXTENDED_ERROR = 0x00008000
94
+ ASC_REQ_STREAM = 0x00010000
95
+ ASC_REQ_INTEGRITY = 0x00020000
96
+ ASC_REQ_LICENSING = 0x00040000
97
+ ASC_REQ_IDENTIFY = 0x00080000
98
+ ASC_REQ_ALLOW_NULL_SESSION = 0x00100000
99
+ ASC_REQ_ALLOW_NON_USER_LOGONS = 0x00200000
100
+ ASC_REQ_ALLOW_CONTEXT_REPLAY = 0x00400000
101
+ ASC_REQ_FRAGMENT_TO_FIT = 0x00800000
102
+ ASC_REQ_FRAGMENT_SUPPLIED = 0x00002000
103
+ ASC_REQ_NO_TOKEN = 0x01000000
104
+ ASC_REQ_PROXY_BINDINGS = 0x04000000
105
+ ASC_REQ_ALLOW_MISSING_BINDINGS = 0x10000000
106
+
107
+ SEC_E_OK = 0x00000000
108
+ SEC_I_CONTINUE_NEEDED = 0x00090312
109
+ SEC_I_COMPLETE_NEEDED = 0x00090313
110
+ SEC_I_COMPLETE_AND_CONTINUE = 0x00090314
111
+ SEC_E_INSUFFICIENT_MEMORY = 0x80090300
112
+ SEC_E_INTERNAL_ERROR = 0x80090304
113
+ SEC_E_INVALID_HANDLE = 0x80090301
114
+ SEC_E_INVALID_TOKEN = 0x80090308
115
+ SEC_E_LOGON_DENIED = 0x8009030C
116
+ SEC_E_NO_AUTHENTICATING_AUTHORITY = 0x80090311
117
+ SEC_E_NO_CREDENTIALS = 0x8009030E
118
+ SEC_E_TARGET_UNKNOWN = 0x80090303
119
+ SEC_E_UNSUPPORTED_FUNCTION = 0x80090302
120
+ SEC_E_WRONG_PRINCIPAL = 0x80090322
121
+ SEC_E_NOT_OWNER = 0x80090306
122
+ SEC_E_SECPKG_NOT_FOUND = 0x80090305
123
+ SEC_E_UNKNOWN_CREDENTIALS = 0x8009030D
124
+
125
+ SEC_WINNT_AUTH_IDENTITY_ANSI = 0x1
126
+ SEC_WINNT_AUTH_IDENTITY_UNICODE = 0x2
127
+
128
+ API.new('AcceptSecurityContext', 'LPPLLPPPP', 'L', 'secur32')
129
+ API.new('AcquireCredentialsHandle', 'PPLPPPPPP', 'L', 'secur32')
130
+ API.new('ApplyControlToken', 'PP', 'L', 'secur32')
131
+ API.new('CompleteAuthToken', 'PP', 'L', 'secur32')
132
+ API.new('DecryptMessage', 'LPLP', 'L', 'secur32')
133
+ API.new('DeleteSecurityContext', 'P', 'L', 'secur32')
134
+ API.new('EncryptMessage', 'LLPL', 'L', 'secur32')
135
+ API.new('EnumerateSecurityPackages', 'PP', 'L', 'secur32')
136
+ API.new('ExportSecurityContext', 'PLPP', 'L', 'secur32')
137
+ API.new('FreeContextBuffer', 'P', 'L', 'secur32')
138
+ API.new('FreeCredentialsHandle', 'P', 'L', 'secur32')
139
+ API.new('ImpersonateSecurityContext', 'L', 'L', 'secur32')
140
+ API.new('ImportSecurityContext', 'PPLP', 'L', 'secur32')
141
+ API.new('InitializeSecurityContext', 'PPPLLLPLPPPP', 'L', 'secur32')
142
+ API.new('InitSecurityInterface', 'V', 'P', 'secur32')
143
+ API.new('MakeSignature', 'LLPL', 'L', 'secur32')
144
+ API.new('QueryContextAttributes', 'LLP', 'L', 'secur32')
145
+ API.new('QueryCredentialsAttributes', 'LLP', 'L', 'secur32')
146
+ API.new('QuerySecurityContextToken', 'LP', 'L', 'secur32')
147
+ API.new('QuerySecurityPackageInfo', 'PP', 'L', 'secur32')
148
+ API.new('RevertSecurityContext', 'L', 'L', 'secur32')
149
+ API.new('SetContextAttributes', 'LLPL', 'L', 'secur32')
150
+ API.new('VerifySignature', 'LPLP', 'L', 'secur32')
151
+ end
152
+ end
153
+ end
@@ -1,142 +1,142 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Service
5
- API.auto_namespace = 'Windows::Service'
6
- API.auto_constant = true
7
- API.auto_method = true
8
- API.auto_unicode = true
9
-
10
- private
11
-
12
- # SCM access rights
13
- SC_MANAGER_ALL_ACCESS = 0xF003F
14
- SC_MANAGER_CREATE_SERVICE = 0x0002
15
- SC_MANAGER_CONNECT = 0x0001
16
- SC_MANAGER_ENUMERATE_SERVICE = 0x0004
17
- SC_MANAGER_LOCK = 0x0008
18
- SC_MANAGER_MODIFY_BOOT_CONFIG = 0x0020
19
- SC_MANAGER_QUERY_LOCK_STATUS = 0x0010
20
- SC_STATUS_PROCESS_INFO = 0
21
- SC_ENUM_PROCESS_INFO = 0
22
-
23
- # Service control action types
24
- SC_ACTION_NONE = 0
25
- SC_ACTION_RESTART = 1
26
- SC_ACTION_REBOOT = 2
27
- SC_ACTION_RUN_COMMAND = 3
28
-
29
- # Service access rights
30
- SERVICE_ALL_ACCESS = 0xF01FF
31
- SERVICE_CHANGE_CONFIG = 0x0002
32
- SERVICE_ENUMERATE_DEPENDENTS = 0x0008
33
- SERVICE_INTERROGATE = 0x0080
34
- SERVICE_PAUSE_CONTINUE = 0x0040
35
- SERVICE_QUERY_CONFIG = 0x0001
36
- SERVICE_QUERY_STATUS = 0x0004
37
- SERVICE_START = 0x0010
38
- SERVICE_STOP = 0x0020
39
- SERVICE_USER_DEFINED_CONTROL = 0x0100
40
-
41
- # Service types
42
- SERVICE_KERNEL_DRIVER = 0x00000001
43
- SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
44
- SERVICE_ADAPTER = 0x00000004
45
- SERVICE_RECOGNIZER_DRIVER = 0x00000008
46
- SERVICE_WIN32_OWN_PROCESS = 0x00000010
47
- SERVICE_WIN32_SHARE_PROCESS = 0x00000020
48
- SERVICE_WIN32 = 0x00000030
49
- SERVICE_INTERACTIVE_PROCESS = 0x00000100
50
- SERVICE_DRIVER = 0x0000000B
51
- SERVICE_TYPE_ALL = 0x0000013F
52
-
53
- # Error control
54
- SERVICE_ERROR_IGNORE = 0x00000000
55
- SERVICE_ERROR_NORMAL = 0x00000001
56
- SERVICE_ERROR_SEVERE = 0x00000002
57
- SERVICE_ERROR_CRITICAL = 0x00000003
58
-
59
- # Start types
60
- SERVICE_BOOT_START = 0x00000000
61
- SERVICE_SYSTEM_START = 0x00000001
62
- SERVICE_AUTO_START = 0x00000002
63
- SERVICE_DEMAND_START = 0x00000003
64
- SERVICE_DISABLED = 0x00000004
65
-
66
- # Service control
67
- SERVICE_CONTROL_STOP = 0x00000001
68
- SERVICE_CONTROL_PAUSE = 0x00000002
69
- SERVICE_CONTROL_CONTINUE = 0x00000003
70
- SERVICE_CONTROL_INTERROGATE = 0x00000004
71
- SERVICE_CONTROL_PARAMCHANGE = 0x00000006
72
- SERVICE_CONTROL_NETBINDADD = 0x00000007
73
- SERVICE_CONTROL_NETBINDREMOVE = 0x00000008
74
- SERVICE_CONTROL_NETBINDENABLE = 0x00000009
75
- SERVICE_CONTROL_NETBINDDISABLE = 0x0000000A
76
-
77
- # Service controls accepted
78
- SERVICE_ACCEPT_STOP = 0x00000001
79
- SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002
80
- SERVICE_ACCEPT_SHUTDOWN = 0x00000004
81
- SERVICE_ACCEPT_PARAMCHANGE = 0x00000008
82
- SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010
83
- SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020
84
- SERVICE_ACCEPT_POWEREVENT = 0x00000040
85
- SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080
86
- SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100
87
-
88
- # Service states
89
- SERVICE_ACTIVE = 0x00000001
90
- SERVICE_INACTIVE = 0x00000002
91
- SERVICE_STATE_ALL = 0x00000003
92
-
93
- # Service current states
94
- SERVICE_STOPPED = 0x00000001
95
- SERVICE_START_PENDING = 0x00000002
96
- SERVICE_STOP_PENDING = 0x00000003
97
- SERVICE_RUNNING = 0x00000004
98
- SERVICE_CONTINUE_PENDING = 0x00000005
99
- SERVICE_PAUSE_PENDING = 0x00000006
100
- SERVICE_PAUSED = 0x00000007
101
-
102
- # Info levels
103
- SERVICE_CONFIG_DESCRIPTION = 1
104
- SERVICE_CONFIG_FAILURE_ACTIONS = 2
105
- SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3
106
- SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4
107
- SERVICE_CONFIG_SERVICE_SID_INFO = 5
108
- SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6
109
- SERVICE_CONFIG_PRESHUTDOWN_INFO = 7
110
-
111
- # Configuration
112
- SERVICE_NO_CHANGE = 0xffffffff
113
-
114
- API.new('ChangeServiceConfig', 'LLLLPPPPPPP', 'B', 'advapi32')
115
- API.new('ChangeServiceConfig2', 'LLP', 'B', 'advapi32')
116
- API.new('CloseServiceHandle', 'L', 'B', 'advapi32')
117
- API.new('ControlService', 'LLP', 'B', 'advapi32')
118
- API.new('CreateService', 'LPPLLLLPPPPPP', 'L', 'advapi32')
119
- API.new('DeleteService', 'L', 'B', 'advapi32')
120
- API.new('EnumDependentServices', 'LLPLPP', 'B', 'advapi32')
121
- API.new('EnumServicesStatus', 'LLLPLPPP', 'B', 'advapi32')
122
- API.new('EnumServicesStatusEx', 'LLLLPLPPPP', 'B', 'advapi32')
123
- API.new('GetServiceDisplayName', 'LPPP', 'B', 'advapi32')
124
- API.new('GetServiceKeyName', 'LPPP', 'B', 'advapi32')
125
- API.new('LockServiceDatabase', 'L', 'L', 'advapi32')
126
- API.new('NotifyBootConfigStatus', 'I', 'B', 'advapi32')
127
- API.new('OpenSCManager', 'PPL', 'L', 'advapi32')
128
- API.new('OpenService', 'LPL', 'L', 'advapi32')
129
- API.new('QueryServiceConfig', 'LPLP', 'B', 'advapi32')
130
- API.new('QueryServiceConfig2', 'LLPLP', 'B', 'advapi32')
131
- API.new('QueryServiceLockStatus', 'LPLP', 'B', 'advapi32')
132
- API.new('QueryServiceStatus', 'LP', 'B', 'advapi32')
133
- API.new('QueryServiceStatusEx', 'LLPLP', 'B', 'advapi32')
134
- API.new('RegisterServiceCtrlHandler', 'PK', 'L', 'advapi32')
135
- API.new('RegisterServiceCtrlHandlerEx', 'PKP', 'L', 'advapi32')
136
- API.new('SetServiceBits', 'LLII', 'B', 'advapi32')
137
- API.new('SetServiceStatus', 'LP', 'B', 'advapi32')
138
- API.new('StartService', 'LLP', 'B', 'advapi32')
139
- API.new('StartServiceCtrlDispatcher', 'P', 'B', 'advapi32')
140
- API.new('UnlockServiceDatabase', 'L', 'B', 'advapi32')
141
- end
142
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Service
5
+ API.auto_namespace = 'Windows::Service'
6
+ API.auto_constant = true
7
+ API.auto_method = true
8
+ API.auto_unicode = true
9
+
10
+ private
11
+
12
+ # SCM access rights
13
+ SC_MANAGER_ALL_ACCESS = 0xF003F
14
+ SC_MANAGER_CREATE_SERVICE = 0x0002
15
+ SC_MANAGER_CONNECT = 0x0001
16
+ SC_MANAGER_ENUMERATE_SERVICE = 0x0004
17
+ SC_MANAGER_LOCK = 0x0008
18
+ SC_MANAGER_MODIFY_BOOT_CONFIG = 0x0020
19
+ SC_MANAGER_QUERY_LOCK_STATUS = 0x0010
20
+ SC_STATUS_PROCESS_INFO = 0
21
+ SC_ENUM_PROCESS_INFO = 0
22
+
23
+ # Service control action types
24
+ SC_ACTION_NONE = 0
25
+ SC_ACTION_RESTART = 1
26
+ SC_ACTION_REBOOT = 2
27
+ SC_ACTION_RUN_COMMAND = 3
28
+
29
+ # Service access rights
30
+ SERVICE_ALL_ACCESS = 0xF01FF
31
+ SERVICE_CHANGE_CONFIG = 0x0002
32
+ SERVICE_ENUMERATE_DEPENDENTS = 0x0008
33
+ SERVICE_INTERROGATE = 0x0080
34
+ SERVICE_PAUSE_CONTINUE = 0x0040
35
+ SERVICE_QUERY_CONFIG = 0x0001
36
+ SERVICE_QUERY_STATUS = 0x0004
37
+ SERVICE_START = 0x0010
38
+ SERVICE_STOP = 0x0020
39
+ SERVICE_USER_DEFINED_CONTROL = 0x0100
40
+
41
+ # Service types
42
+ SERVICE_KERNEL_DRIVER = 0x00000001
43
+ SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
44
+ SERVICE_ADAPTER = 0x00000004
45
+ SERVICE_RECOGNIZER_DRIVER = 0x00000008
46
+ SERVICE_WIN32_OWN_PROCESS = 0x00000010
47
+ SERVICE_WIN32_SHARE_PROCESS = 0x00000020
48
+ SERVICE_WIN32 = 0x00000030
49
+ SERVICE_INTERACTIVE_PROCESS = 0x00000100
50
+ SERVICE_DRIVER = 0x0000000B
51
+ SERVICE_TYPE_ALL = 0x0000013F
52
+
53
+ # Error control
54
+ SERVICE_ERROR_IGNORE = 0x00000000
55
+ SERVICE_ERROR_NORMAL = 0x00000001
56
+ SERVICE_ERROR_SEVERE = 0x00000002
57
+ SERVICE_ERROR_CRITICAL = 0x00000003
58
+
59
+ # Start types
60
+ SERVICE_BOOT_START = 0x00000000
61
+ SERVICE_SYSTEM_START = 0x00000001
62
+ SERVICE_AUTO_START = 0x00000002
63
+ SERVICE_DEMAND_START = 0x00000003
64
+ SERVICE_DISABLED = 0x00000004
65
+
66
+ # Service control
67
+ SERVICE_CONTROL_STOP = 0x00000001
68
+ SERVICE_CONTROL_PAUSE = 0x00000002
69
+ SERVICE_CONTROL_CONTINUE = 0x00000003
70
+ SERVICE_CONTROL_INTERROGATE = 0x00000004
71
+ SERVICE_CONTROL_PARAMCHANGE = 0x00000006
72
+ SERVICE_CONTROL_NETBINDADD = 0x00000007
73
+ SERVICE_CONTROL_NETBINDREMOVE = 0x00000008
74
+ SERVICE_CONTROL_NETBINDENABLE = 0x00000009
75
+ SERVICE_CONTROL_NETBINDDISABLE = 0x0000000A
76
+
77
+ # Service controls accepted
78
+ SERVICE_ACCEPT_STOP = 0x00000001
79
+ SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002
80
+ SERVICE_ACCEPT_SHUTDOWN = 0x00000004
81
+ SERVICE_ACCEPT_PARAMCHANGE = 0x00000008
82
+ SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010
83
+ SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020
84
+ SERVICE_ACCEPT_POWEREVENT = 0x00000040
85
+ SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080
86
+ SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100
87
+
88
+ # Service states
89
+ SERVICE_ACTIVE = 0x00000001
90
+ SERVICE_INACTIVE = 0x00000002
91
+ SERVICE_STATE_ALL = 0x00000003
92
+
93
+ # Service current states
94
+ SERVICE_STOPPED = 0x00000001
95
+ SERVICE_START_PENDING = 0x00000002
96
+ SERVICE_STOP_PENDING = 0x00000003
97
+ SERVICE_RUNNING = 0x00000004
98
+ SERVICE_CONTINUE_PENDING = 0x00000005
99
+ SERVICE_PAUSE_PENDING = 0x00000006
100
+ SERVICE_PAUSED = 0x00000007
101
+
102
+ # Info levels
103
+ SERVICE_CONFIG_DESCRIPTION = 1
104
+ SERVICE_CONFIG_FAILURE_ACTIONS = 2
105
+ SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3
106
+ SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4
107
+ SERVICE_CONFIG_SERVICE_SID_INFO = 5
108
+ SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6
109
+ SERVICE_CONFIG_PRESHUTDOWN_INFO = 7
110
+
111
+ # Configuration
112
+ SERVICE_NO_CHANGE = 0xffffffff
113
+
114
+ API.new('ChangeServiceConfig', 'LLLLPPPPPPP', 'B', 'advapi32')
115
+ API.new('ChangeServiceConfig2', 'LLP', 'B', 'advapi32')
116
+ API.new('CloseServiceHandle', 'L', 'B', 'advapi32')
117
+ API.new('ControlService', 'LLP', 'B', 'advapi32')
118
+ API.new('CreateService', 'LPPLLLLPPPPPP', 'L', 'advapi32')
119
+ API.new('DeleteService', 'L', 'B', 'advapi32')
120
+ API.new('EnumDependentServices', 'LLPLPP', 'B', 'advapi32')
121
+ API.new('EnumServicesStatus', 'LLLPLPPP', 'B', 'advapi32')
122
+ API.new('EnumServicesStatusEx', 'LLLLPLPPPP', 'B', 'advapi32')
123
+ API.new('GetServiceDisplayName', 'LPPP', 'B', 'advapi32')
124
+ API.new('GetServiceKeyName', 'LPPP', 'B', 'advapi32')
125
+ API.new('LockServiceDatabase', 'L', 'L', 'advapi32')
126
+ API.new('NotifyBootConfigStatus', 'I', 'B', 'advapi32')
127
+ API.new('OpenSCManager', 'PPL', 'L', 'advapi32')
128
+ API.new('OpenService', 'LPL', 'L', 'advapi32')
129
+ API.new('QueryServiceConfig', 'LPLP', 'B', 'advapi32')
130
+ API.new('QueryServiceConfig2', 'LLPLP', 'B', 'advapi32')
131
+ API.new('QueryServiceLockStatus', 'LPLP', 'B', 'advapi32')
132
+ API.new('QueryServiceStatus', 'LP', 'B', 'advapi32')
133
+ API.new('QueryServiceStatusEx', 'LLPLP', 'B', 'advapi32')
134
+ API.new('RegisterServiceCtrlHandler', 'PK', 'L', 'advapi32')
135
+ API.new('RegisterServiceCtrlHandlerEx', 'PKP', 'L', 'advapi32')
136
+ API.new('SetServiceBits', 'LLII', 'B', 'advapi32')
137
+ API.new('SetServiceStatus', 'LP', 'B', 'advapi32')
138
+ API.new('StartService', 'LLP', 'B', 'advapi32')
139
+ API.new('StartServiceCtrlDispatcher', 'P', 'B', 'advapi32')
140
+ API.new('UnlockServiceDatabase', 'L', 'B', 'advapi32')
141
+ end
142
+ end