windows-pr 1.0.7 → 1.0.8
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 +8 -0
- data/lib/windows/file.rb +6 -5
- data/lib/windows/handle.rb +1 -1
- data/lib/windows/mailslot.rb +2 -2
- data/lib/windows/network/management.rb +1 -1
- data/lib/windows/ntfs/winternl.rb +5 -0
- data/lib/windows/system_info.rb +10 -0
- data/windows-pr.gemspec +2 -2
- metadata +3 -3
data/CHANGES
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
= 1.0.8 - 24-Aug-2009
|
2
|
+
* Several return value constants that were set at -1 are now set to
|
3
|
+
0xFFFFFFFF instead because win32-api returns unsigned longs.
|
4
|
+
* Removed the two mailslot constants from the Windows::File module. They're
|
5
|
+
defined in the Windows::Mailslot module.
|
6
|
+
* Added the windows_version method to the Windows::SystemInfo module. It
|
7
|
+
returns a float in 'major.minor' format.
|
8
|
+
|
1
9
|
= 1.0.7 - 20-Aug-2009
|
2
10
|
* Added the Windows::Mailslot module.
|
3
11
|
* The IsProcessInJob function in the Windows::Process module is now wrapped
|
data/lib/windows/file.rb
CHANGED
@@ -101,8 +101,6 @@ module Windows
|
|
101
101
|
FILE_NOTIFY_CHANGE_LAST_ACCESS = 32
|
102
102
|
FILE_NOTIFY_CHANGE_CREATION = 64
|
103
103
|
FILE_NOTIFY_CHANGE_SECURITY = 256
|
104
|
-
MAILSLOT_NO_MESSAGE = -1
|
105
|
-
MAILSLOT_WAIT_FOREVER = -1
|
106
104
|
FILE_CASE_SENSITIVE_SEARCH = 1
|
107
105
|
FILE_CASE_PRESERVED_NAMES = 2
|
108
106
|
FILE_UNICODE_ON_DISK = 4
|
@@ -154,11 +152,14 @@ module Windows
|
|
154
152
|
|
155
153
|
# Errors
|
156
154
|
|
157
|
-
INVALID_FILE_ATTRIBUTES =
|
158
|
-
|
159
|
-
INVALID_SET_FILE_POINTER = -1
|
155
|
+
INVALID_FILE_ATTRIBUTES = 0xFFFFFFFF
|
156
|
+
INVALID_SET_FILE_POINTER = 0xFFFFFFFF
|
160
157
|
INVALID_FILE_SIZE = 0xFFFFFFFF
|
161
158
|
|
159
|
+
# Defined in Windows::Handle as well. Here for convenience.
|
160
|
+
|
161
|
+
INVALID_HANDLE_VALUE = 0xFFFFFFFF unless defined? INVALID_HANDLE_VALUE
|
162
|
+
|
162
163
|
# Misc
|
163
164
|
|
164
165
|
LOCKFILE_EXCLUSIVE_LOCK = 0x00000001
|
data/lib/windows/handle.rb
CHANGED
data/lib/windows/mailslot.rb
CHANGED
@@ -12,8 +12,8 @@ module Windows
|
|
12
12
|
|
13
13
|
# Constants
|
14
14
|
|
15
|
-
MAILSLOT_WAIT_FOREVER =
|
16
|
-
MAILSLOT_NO_MESSAGE =
|
15
|
+
MAILSLOT_WAIT_FOREVER = 0xFFFFFFFF
|
16
|
+
MAILSLOT_NO_MESSAGE = 0xFFFFFFFF
|
17
17
|
|
18
18
|
API.new('CreateMailslot', 'SLLP', 'L')
|
19
19
|
API.new('GetMailslotInfo', 'LPPPP', 'B')
|
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'windows/api'
|
2
2
|
|
3
|
+
# This library exposes functions from ntdll, which are typically undocumented.
|
4
|
+
# The name is derived from winternl.h which contains only function prototypes.
|
5
|
+
|
3
6
|
module Windows
|
4
7
|
module NTFS
|
5
8
|
module Winternl
|
@@ -57,6 +60,8 @@ module Windows
|
|
57
60
|
API.new('NtQueryInformationFile', 'LPPLL', 'L', 'ntdll')
|
58
61
|
API.new('NtQueryObject', 'LLPLP', 'L', 'ntdll')
|
59
62
|
API.new('NtQuerySystemInformation', 'LPLP', 'L', 'ntdll')
|
63
|
+
API.new('RtlAdjustPrivilege', 'LIIP', 'L', 'ntdll')
|
64
|
+
API.new('RtlSetProcessIsCritical', 'IPI', 'L', 'ntdll')
|
60
65
|
|
61
66
|
# Should work for Windows XP/2000
|
62
67
|
unless defined? GetFinalPathNameByHandle
|
data/lib/windows/system_info.rb
CHANGED
@@ -114,6 +114,16 @@ module Windows
|
|
114
114
|
w >> 8
|
115
115
|
end
|
116
116
|
|
117
|
+
# Returns a float indicating the major and minor version of Windows,
|
118
|
+
# e.g. 5.1, 6.0, etc.
|
119
|
+
#
|
120
|
+
def windows_version
|
121
|
+
version = GetVersion()
|
122
|
+
major = LOBYTE(LOWORD(version))
|
123
|
+
minor = HIBYTE(LOWORD(version))
|
124
|
+
eval("Float(#{major}.#{minor})")
|
125
|
+
end
|
126
|
+
|
117
127
|
# Custom methods that may come in handy
|
118
128
|
|
119
129
|
# Returns true if the current platform is Vista (any variant) or Windows
|
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 = '1.0.
|
5
|
+
gem.version = '1.0.8'
|
6
6
|
gem.license = 'Artistic 2.0'
|
7
7
|
gem.authors = ['Daniel J. Berger', 'Park Heesob']
|
8
8
|
gem.email = 'djberg96@gmail.com'
|
@@ -22,7 +22,7 @@ spec = Gem::Specification.new do |gem|
|
|
22
22
|
]
|
23
23
|
|
24
24
|
gem.add_dependency('windows-api', '>= 0.3.0')
|
25
|
-
gem.add_dependency('win32-api', '>= 1.4.
|
25
|
+
gem.add_dependency('win32-api', '>= 1.4.5')
|
26
26
|
|
27
27
|
gem.description = <<-EOF
|
28
28
|
The windows-pr library is a collection of Windows functions and constants
|
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: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2009-08-
|
13
|
+
date: 2009-08-24 00:00:00 -06:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.4.
|
34
|
+
version: 1.4.5
|
35
35
|
version:
|
36
36
|
description: " The windows-pr library is a collection of Windows functions and constants\n pre-defined for you using the windows-api library. It also autogenerates\n explicit ANSI and Wide character versions of those functions, as well as\n constants that can be used as methods, e.g. CloseHandle() instead of\n CloseHandle.call().\n"
|
37
37
|
email: djberg96@gmail.com
|