windows-pr 0.8.3 → 0.8.4
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.
- data/CHANGES +7 -0
- data/lib/windows/device_io.rb +121 -1
- data/lib/windows/thread.rb +1 -1
- data/lib/windows/window.rb +8 -1
- data/windows-pr.gemspec +1 -1
- metadata +2 -2
data/CHANGES
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
= 0.8.4 - 18-May-2008
|
2
|
+
* Added the Windows::NTFS::File module.
|
3
|
+
* Added several IOCTL macro methods to the Windows::DeviceIO module.
|
4
|
+
* Wrapped the GetLayeredWindowAttributes function in the Windows::Window
|
5
|
+
module since it is only supported on Windows XP or later.
|
6
|
+
* Fixed the CreateThread prototype with regards to callback support.
|
7
|
+
|
1
8
|
= 0.8.3 - 26-Apr-2008
|
2
9
|
* Now requires windows-api 0.2.3 or later to take advantage of the
|
3
10
|
improvements in auto constant generation.
|
data/lib/windows/device_io.rb
CHANGED
@@ -68,8 +68,13 @@ module Windows
|
|
68
68
|
FILE_DEVICE_KSEC = 0x00000039
|
69
69
|
FILE_DEVICE_FIPS = 0x0000003A
|
70
70
|
FILE_DEVICE_INFINIBAND = 0x0000003B
|
71
|
+
|
72
|
+
IOCTL_DISK_BASE = FILE_DEVICE_DISK
|
71
73
|
|
72
|
-
FILE_ANY_ACCESS
|
74
|
+
FILE_ANY_ACCESS = 0
|
75
|
+
FILE_READ_ACCESS = 0x0001
|
76
|
+
FILE_WRITE_ACCESS = 0x0002
|
77
|
+
FILE_SPECIAL_ACCESS = FILE_ANY_ACCESS
|
73
78
|
|
74
79
|
METHOD_BUFFERED = 0
|
75
80
|
METHOD_IN_DIRECT = 1
|
@@ -123,5 +128,120 @@ module Windows
|
|
123
128
|
def FSCTL_DELETE_USN_JOURNAL
|
124
129
|
CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, 0)
|
125
130
|
end
|
131
|
+
|
132
|
+
def IOCTL_DISK_GET_DRIVE_GEOMETRY
|
133
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
134
|
+
end
|
135
|
+
|
136
|
+
def IOCTL_DISK_GET_PARTITION_INFO
|
137
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
|
138
|
+
end
|
139
|
+
|
140
|
+
def IOCTL_DISK_SET_PARTITION_INFO
|
141
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED,
|
142
|
+
FILE_READ_ACCESS | FILE_WRITE_ACCESS
|
143
|
+
)
|
144
|
+
end
|
145
|
+
|
146
|
+
def IOCTL_DISK_GET_DRIVE_LAYOUT
|
147
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
|
148
|
+
end
|
149
|
+
|
150
|
+
def IOCTL_DISK_SET_DRIVE_LAYOUT
|
151
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED,
|
152
|
+
FILE_READ_ACCESS | FILE_WRITE_ACCESS)
|
153
|
+
end
|
154
|
+
|
155
|
+
def IOCTL_DISK_VERIFY
|
156
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
157
|
+
end
|
158
|
+
|
159
|
+
def IOCTL_DISK_FORMAT_TRACKS
|
160
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED,
|
161
|
+
FILE_READ_ACCESS | FILE_WRITE_ACCESS
|
162
|
+
)
|
163
|
+
end
|
164
|
+
|
165
|
+
def IOCTL_DISK_REASSIGN_BLOCKS
|
166
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED,
|
167
|
+
FILE_READ_ACCESS | FILE_WRITE_ACCESS
|
168
|
+
)
|
169
|
+
end
|
170
|
+
|
171
|
+
def IOCTL_DISK_PERFORMANCE
|
172
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
173
|
+
end
|
174
|
+
|
175
|
+
def IOCTL_DISK_IS_WRITABLE
|
176
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
177
|
+
end
|
178
|
+
|
179
|
+
def IOCTL_DISK_LOGGING
|
180
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
181
|
+
end
|
182
|
+
|
183
|
+
def IOCTL_DISK_FORMAT_TRACKS_EX
|
184
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED,
|
185
|
+
FILE_READ_ACCESS | FILE_WRITE_ACCESS
|
186
|
+
)
|
187
|
+
end
|
188
|
+
|
189
|
+
def IOCTL_DISK_HISTOGRAM_STRUCTURE
|
190
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
191
|
+
end
|
192
|
+
|
193
|
+
def IOCTL_DISK_HISTOGRAM_DATA
|
194
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
195
|
+
end
|
196
|
+
|
197
|
+
def IOCTL_DISK_HISTOGRAM_RESET
|
198
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
199
|
+
end
|
200
|
+
|
201
|
+
def IOCTL_DISK_REQUEST_STRUCTURE
|
202
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
203
|
+
end
|
204
|
+
|
205
|
+
def IOCTL_DISK_REQUEST_DATA
|
206
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
207
|
+
end
|
208
|
+
|
209
|
+
def IOCTL_DISK_PERFORMANCE_OFF
|
210
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
211
|
+
end
|
212
|
+
|
213
|
+
def IOCTL_DISK_GET_PARTITION_INFO_EX
|
214
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
215
|
+
end
|
216
|
+
|
217
|
+
def IOCTL_DISK_SET_PARTITION_INFO_EX
|
218
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED,
|
219
|
+
FILE_READ_ACCESS | FILE_WRITE_ACCESS
|
220
|
+
)
|
221
|
+
end
|
222
|
+
|
223
|
+
def IOCTL_DISK_GET_DRIVE_LAYOUT_EX
|
224
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
225
|
+
end
|
226
|
+
|
227
|
+
def IOCTL_DISK_SET_DRIVE_LAYOUT_EX
|
228
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED,
|
229
|
+
FILE_READ_ACCESS | FILE_WRITE_ACCESS
|
230
|
+
)
|
231
|
+
end
|
232
|
+
|
233
|
+
def IOCTL_DISK_CREATE_DISK
|
234
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED,
|
235
|
+
FILE_READ_ACCESS | FILE_WRITE_ACCESS
|
236
|
+
)
|
237
|
+
end
|
238
|
+
|
239
|
+
def IOCTL_DISK_GET_LENGTH_INFO
|
240
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS)
|
241
|
+
end
|
242
|
+
|
243
|
+
def IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
|
244
|
+
CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
245
|
+
end
|
126
246
|
end
|
127
247
|
end
|
data/lib/windows/thread.rb
CHANGED
@@ -29,7 +29,7 @@ module Windows
|
|
29
29
|
THREAD_PRIORITY_TIME_CRITICAL = 15
|
30
30
|
|
31
31
|
API.new('CreateRemoteThread', 'LPLLPLP', 'L')
|
32
|
-
API.new('CreateThread', '
|
32
|
+
API.new('CreateThread', 'PLKPLP', 'L')
|
33
33
|
API.new('ExitThread', 'L', 'V')
|
34
34
|
API.new('GetCurrentThread', 'V', 'L')
|
35
35
|
API.new('GetCurrentThreadId', 'V', 'L')
|
data/lib/windows/window.rb
CHANGED
@@ -37,7 +37,6 @@ module Windows
|
|
37
37
|
API.new('GetForegroundWindow', 'V', 'L', 'user32')
|
38
38
|
API.new('GetGUIThreadInfo', 'LP', 'B', 'user32')
|
39
39
|
API.new('GetLastActivePopup', 'L', 'L', 'user32')
|
40
|
-
API.new('GetLayeredWindowAttributes', 'LPBL', 'B', 'user32')
|
41
40
|
API.new('GetParent', 'L', 'L', 'user32')
|
42
41
|
API.new('GetProcessDefaultLayout', 'P', 'B', 'user32')
|
43
42
|
API.new('GetShellWindow', 'V', 'L', 'user32')
|
@@ -51,5 +50,13 @@ module Windows
|
|
51
50
|
API.new('GetWindowText', 'LPI', 'I', 'user32')
|
52
51
|
API.new('GetWindowTextLength', 'L', 'I', 'user32')
|
53
52
|
API.new('GetWindowThreadProcessId', 'LP', 'L', 'user32')
|
53
|
+
|
54
|
+
# Windows XP or later
|
55
|
+
begin
|
56
|
+
API.new('GetLayeredWindowAttributes', 'LPBL', 'B', 'user32')
|
57
|
+
rescue Exception
|
58
|
+
# Do nothing - not supported on current platform. It's up to you
|
59
|
+
# to check for the existence of the constant in your code.
|
60
|
+
end
|
54
61
|
end
|
55
62
|
end
|
data/windows-pr.gemspec
CHANGED
@@ -2,7 +2,7 @@ require "rubygems"
|
|
2
2
|
|
3
3
|
spec = Gem::Specification.new do |gem|
|
4
4
|
gem.name = "windows-pr"
|
5
|
-
gem.version = "0.8.
|
5
|
+
gem.version = "0.8.4"
|
6
6
|
gem.author = "Daniel J. Berger"
|
7
7
|
gem.email = "djberg96@gmail.com"
|
8
8
|
gem.homepage = "http://www.rubyforge.org/projects/win32utils"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: windows-pr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-05-18 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|