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.
- checksums.yaml +7 -0
- data/CHANGES +444 -438
- data/MANIFEST +68 -65
- data/README +154 -153
- data/Rakefile +42 -37
- data/doc/conversion_guide.txt +37 -37
- data/lib/windows/clipboard.rb +61 -61
- data/lib/windows/com.rb +192 -192
- data/lib/windows/com/accessibility.rb +16 -16
- data/lib/windows/com/automation.rb +149 -149
- data/lib/windows/com/variant.rb +24 -24
- data/lib/windows/console.rb +114 -114
- data/lib/windows/debug.rb +35 -35
- data/lib/windows/device_io.rb +248 -248
- data/lib/windows/directory.rb +27 -27
- data/lib/windows/error.rb +504 -498
- data/lib/windows/eventlog.rb +80 -80
- data/lib/windows/file.rb +264 -264
- data/lib/windows/file_mapping.rb +25 -25
- data/lib/windows/filesystem.rb +15 -15
- data/lib/windows/gdi/bitmap.rb +65 -65
- data/lib/windows/gdi/device_context.rb +46 -46
- data/lib/windows/gdi/metafile.rb +40 -40
- data/lib/windows/gdi/painting_drawing.rb +115 -115
- data/lib/windows/handle.rb +23 -23
- data/lib/windows/library.rb +44 -44
- data/lib/windows/limits.rb +34 -34
- data/lib/windows/mailslot.rb +24 -24
- data/lib/windows/memory.rb +128 -128
- data/lib/windows/msvcrt/buffer.rb +75 -75
- data/lib/windows/msvcrt/directory.rb +31 -31
- data/lib/windows/msvcrt/file.rb +47 -47
- data/lib/windows/msvcrt/io.rb +73 -73
- data/lib/windows/msvcrt/string.rb +182 -182
- data/lib/windows/msvcrt/time.rb +169 -169
- data/lib/windows/national.rb +580 -580
- data/lib/windows/network/management.rb +525 -525
- data/lib/windows/network/snmp.rb +92 -92
- data/lib/windows/network/winsock.rb +128 -128
- data/lib/windows/nio.rb +50 -50
- data/lib/windows/ntfs/winternl.rb +117 -117
- data/lib/windows/path.rb +143 -143
- data/lib/windows/pipe.rb +42 -42
- data/lib/windows/process.rb +176 -176
- data/lib/windows/registry.rb +171 -171
- data/lib/windows/security.rb +479 -479
- data/lib/windows/security/authentication.rb +32 -32
- data/lib/windows/security/sspi.rb +153 -0
- data/lib/windows/service.rb +142 -142
- data/lib/windows/shell.rb +171 -171
- data/lib/windows/socket.rb +86 -86
- data/lib/windows/sound.rb +39 -39
- data/lib/windows/synchronize.rb +133 -133
- data/lib/windows/system_info.rb +229 -229
- data/lib/windows/thread.rb +64 -64
- data/lib/windows/time.rb +48 -48
- data/lib/windows/tool_helper.rb +36 -36
- data/lib/windows/unicode.rb +155 -155
- data/lib/windows/volume.rb +61 -61
- data/lib/windows/window.rb +81 -81
- data/lib/windows/window/classes.rb +59 -59
- data/lib/windows/window/dialog.rb +91 -91
- data/lib/windows/window/menu.rb +102 -102
- data/lib/windows/window/message.rb +297 -297
- data/lib/windows/window/properties.rb +20 -20
- data/lib/windows/window/timer.rb +19 -19
- data/lib/windows/wsa.rb +102 -102
- data/test/tc_clipboard.rb +41 -41
- data/test/tc_com.rb +32 -32
- data/test/tc_com_automation.rb +15 -15
- data/test/tc_console.rb +108 -108
- data/test/tc_debug.rb +48 -48
- data/test/tc_device_io.rb +29 -29
- data/test/tc_directory.rb +25 -25
- data/test/tc_error.rb +38 -38
- data/test/tc_eventlog.rb +58 -58
- data/test/tc_file.rb +67 -67
- data/test/tc_file_mapping.rb +38 -38
- data/test/tc_filesystem.rb +27 -27
- data/test/tc_gdi_bitmap.rb +25 -25
- data/test/tc_gdi_metafile.rb +23 -23
- data/test/tc_handle.rb +36 -36
- data/test/tc_library.rb +37 -37
- data/test/tc_limits.rb +34 -34
- data/test/tc_mailslot.rb +22 -22
- data/test/tc_memory.rb +44 -44
- data/test/tc_msvcrt_buffer.rb +63 -63
- data/test/tc_msvcrt_directory.rb +96 -96
- data/test/tc_msvcrt_file.rb +80 -80
- data/test/tc_msvcrt_io.rb +48 -48
- data/test/tc_msvcrt_string.rb +94 -94
- data/test/tc_msvcrt_time.rb +19 -19
- data/test/tc_national.rb +38 -38
- data/test/tc_network_management.rb +32 -32
- data/test/tc_network_snmp.rb +31 -31
- data/test/tc_network_winsock.rb +34 -34
- data/test/tc_nio.rb +32 -32
- data/test/tc_ntfs_winternl.rb +48 -48
- data/test/tc_path.rb +90 -90
- data/test/tc_pipe.rb +53 -53
- data/test/tc_process.rb +24 -24
- data/test/tc_registry.rb +29 -29
- data/test/tc_security.rb +104 -104
- data/test/tc_security_authentication.rb +34 -34
- data/test/tc_security_sspi.rb +23 -0
- data/test/tc_service.rb +57 -57
- data/test/tc_shell.rb +34 -34
- data/test/tc_socket.rb +20 -20
- data/test/tc_sound.rb +37 -37
- data/test/tc_synchronize.rb +75 -75
- data/test/tc_system_info.rb +33 -33
- data/test/tc_thread.rb +29 -29
- data/test/tc_time.rb +32 -32
- data/test/tc_tool_helper.rb +29 -29
- data/test/tc_unicode.rb +83 -83
- data/test/tc_volume.rb +47 -47
- data/test/tc_window.rb +45 -45
- data/test/tc_window_classes.rb +33 -33
- data/test/tc_window_dialog.rb +33 -33
- data/test/tc_window_menu.rb +29 -29
- data/test/tc_window_message.rb +33 -33
- data/test/tc_window_properties.rb +29 -29
- data/test/tc_window_timer.rb +29 -29
- data/test/tc_wsa.rb +19 -19
- data/windows-pr.gemspec +33 -34
- 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
|
data/lib/windows/service.rb
CHANGED
@@ -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
|