windows-pr 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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