windows-pr 0.6.2 → 0.6.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.
- data/CHANGES +15 -0
- data/MANIFEST +5 -0
- data/README +1 -1
- data/lib/windows/device_io.rb +2 -2
- data/lib/windows/error.rb +1 -1
- data/lib/windows/network_management.rb +1 -1
- data/lib/windows/pipe.rb +2 -0
- data/lib/windows/security.rb +78 -6
- data/lib/windows/system_info.rb +3 -3
- data/windows-pr.gemspec +1 -1
- metadata +3 -3
data/CHANGES
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
= 0.6.3 - 2-Feb-2007
|
2
|
+
* Fixed the DLL for SetLastErrorEx in the Windows::Error module.
|
3
|
+
* Fixed an unitialized constant bug in the Windows::DeviceIO module.
|
4
|
+
* Fixed a bug in the NetWkstaSetInfo() method, from the
|
5
|
+
Windows::NetworkManagement module. Thanks go to Richard (???) for the spot.
|
6
|
+
* Added more security related methods and constants to the Windows::Security
|
7
|
+
module.
|
8
|
+
* Fixed a bug in the GetComputerName method in the Windows::SystemInfo module.
|
9
|
+
Thanks go to Russell Christopher for the spot and the fix.
|
10
|
+
* Changed method prototype for GetUserName and GetUserNameEx in the
|
11
|
+
Windows::SystemInfo module.
|
12
|
+
* Added the PIPE_UNLIMITED_INSTANCES constant to the Windows::Pipe module.
|
13
|
+
* Altered the prototype for the ConvertSidToStringSid() and
|
14
|
+
ConvertStringSidToSid() methods from the Windows::Security module.
|
15
|
+
|
1
16
|
= 0.6.2 - 21-Dec-2006
|
2
17
|
* Added file related constants from sys/stat.h to the Windows::MSVCRT::File
|
3
18
|
module.
|
data/MANIFEST
CHANGED
@@ -12,6 +12,7 @@ lib/windows/device_io.rb
|
|
12
12
|
lib/windows/directory.rb
|
13
13
|
lib/windows/error.rb
|
14
14
|
lib/windows/eventlog.rb
|
15
|
+
lib/windows/file_mapping.rb
|
15
16
|
lib/windows/file.rb
|
16
17
|
lib/windows/filesystem.rb
|
17
18
|
lib/windows/handle.rb
|
@@ -19,15 +20,19 @@ lib/windows/library.rb
|
|
19
20
|
lib/windows/limits.rb
|
20
21
|
lib/windows/memory.rb
|
21
22
|
lib/windows/national.rb
|
23
|
+
lib/windows/network_management.rb
|
22
24
|
lib/windows/path.rb
|
25
|
+
lib/windows/pipe.rb
|
23
26
|
lib/windows/process.rb
|
24
27
|
lib/windows/registry.rb
|
25
28
|
lib/windows/security.rb
|
29
|
+
lib/windows/service.rb
|
26
30
|
lib/windows/shell.rb
|
27
31
|
lib/windows/sound.rb
|
28
32
|
lib/windows/synchronize.rb
|
29
33
|
lib/windows/system_info.rb
|
30
34
|
lib/windows/unicode.rb
|
35
|
+
lib/windows/volume.rb
|
31
36
|
lib/windows/window.rb
|
32
37
|
|
33
38
|
lib/windows/gdi/bitmap.rb
|
data/README
CHANGED
data/lib/windows/device_io.rb
CHANGED
@@ -78,11 +78,11 @@ module Windows
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def FSCTL_SET_COMPRESSION
|
81
|
-
CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, 0,
|
81
|
+
CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, 0, 3)
|
82
82
|
end
|
83
83
|
|
84
84
|
def FSCTL_SET_SPARSE
|
85
|
-
CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, 0,
|
85
|
+
CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, 0, FILE_ANY_ACCESS)
|
86
86
|
end
|
87
87
|
end
|
88
88
|
end
|
data/lib/windows/error.rb
CHANGED
@@ -276,7 +276,7 @@ module Windows
|
|
276
276
|
FormatMessageW = Win32API.new('kernel32', 'FormatMessageW', 'LLLLPLP', 'L')
|
277
277
|
|
278
278
|
begin
|
279
|
-
SetLastErrorEx = Win32API.new('
|
279
|
+
SetLastErrorEx = Win32API.new('user32', 'SetLastErrorEx', 'LL', 'V')
|
280
280
|
rescue Exception
|
281
281
|
end
|
282
282
|
|
@@ -419,7 +419,7 @@ module Windows
|
|
419
419
|
NetWkstaGetInfo.call(server, level, buf) == NERR_Success
|
420
420
|
end
|
421
421
|
|
422
|
-
def NetWkstaSetInfo
|
422
|
+
def NetWkstaSetInfo(server, level, buf, error)
|
423
423
|
NetWkstaSetInfo.call(server, level, buf, error) == NERR_Success
|
424
424
|
end
|
425
425
|
|
data/lib/windows/pipe.rb
CHANGED
@@ -17,6 +17,8 @@ module Windows
|
|
17
17
|
PIPE_READMODE_MESSAGE = 0x00000002
|
18
18
|
PIPE_CLIENT_END = 0x00000000
|
19
19
|
PIPE_SERVER_END = 0x00000001
|
20
|
+
|
21
|
+
PIPE_UNLIMITED_INSTANCES = 255
|
20
22
|
|
21
23
|
CallNamedPipe = Win32API.new('kernel32', 'CallNamedPipe', 'PPLPLPL', 'I')
|
22
24
|
ConnectNamedPipe = Win32API.new('kernel32', 'ConnectNamedPipe', 'LP', 'I')
|
data/lib/windows/security.rb
CHANGED
@@ -16,23 +16,39 @@ module Windows
|
|
16
16
|
GENERIC_RIGHTS_CHK = 4026531840
|
17
17
|
REST_RIGHTS_MASK = 2097151
|
18
18
|
|
19
|
-
AddAce
|
20
|
-
CopySid
|
19
|
+
AddAce = Win32API.new('advapi32', 'AddAce', 'PLLLL', 'I')
|
20
|
+
CopySid = Win32API.new('advapi32', 'CopySid', 'LLP', 'I')
|
21
|
+
|
22
|
+
ConvertSidToStringSid = Win32API.new('advapi32', 'ConvertSidToStringSid', 'PL', 'I')
|
23
|
+
ConvertSecurityDescriptorToStringSecurityDescriptor = Win32API.new('advapi32', 'ConvertSecurityDescriptorToStringSecurityDescriptor', 'PLLPP', 'I')
|
24
|
+
ConvertStringSecurityDescriptorToSecurityDescriptor = Win32API.new('advapi32', 'ConvertStringSecurityDescriptorToSecurityDescriptor', 'PLPP', 'I')
|
25
|
+
ConvertStringSidToSid = Win32API.new('advapi32', 'ConvertStringSidToSid', 'PL', 'I')
|
26
|
+
|
21
27
|
GetAce = Win32API.new('advapi32', 'GetAce', 'LLP', 'I')
|
22
28
|
GetFileSecurity = Win32API.new('advapi32', 'GetFileSecurity', 'PLPLP', 'I')
|
23
29
|
GetLengthSid = Win32API.new('advapi32', 'GetLengthSid', 'P', 'L')
|
24
30
|
|
25
|
-
GetSecurityDescriptorControl
|
26
|
-
GetSecurityDescriptorDacl
|
31
|
+
GetSecurityDescriptorControl = Win32API.new('advapi32', 'GetSecurityDescriptorControl', 'PPP', 'I')
|
32
|
+
GetSecurityDescriptorDacl = Win32API.new('advapi32', 'GetSecurityDescriptorDacl', 'PPPP', 'I')
|
33
|
+
GetSecurityDescriptorGroup = Win32API.new('advapi32', 'GetSecurityDescriptorGroup', 'PPI', 'I')
|
34
|
+
GetSecurityDescriptorLength = Win32API.new('advapi32', 'GetSecurityDescriptorLength', 'P', 'L')
|
35
|
+
GetSecurityDescriptorOwner = Win32API.new('advapi32', 'GetSecurityDescriptorOwner', 'PPI', 'I')
|
36
|
+
GetSecurityDescriptorRMControl = Win32API.new('advapi32', 'GetSecurityDescriptorRMControl', 'PP', 'L')
|
37
|
+
GetSecurityDescriptorSacl = Win32API.new('advapi32', 'GetSecurityDescriptorSacl', 'PIPI', 'I')
|
27
38
|
|
28
39
|
InitializeAcl = Win32API.new('advapi32', 'InitializeAcl', 'PLL', 'I')
|
29
40
|
InitializeSecurityDescriptor = Win32API.new('advapi32', 'InitializeSecurityDescriptor', 'PL', 'I')
|
41
|
+
IsValidSecurityDescriptor = Win32API.new('advapi32', 'IsValidSecurityDescriptor', 'P', 'I')
|
30
42
|
|
31
43
|
LookupAccountName = Win32API.new('advapi32', 'LookupAccountName', 'PPPPPPP', 'I')
|
32
44
|
LookupAccountSid = Win32API.new('advapi32', 'LookupAccountSid', 'PLPPPPP', 'I')
|
33
45
|
|
34
|
-
SetFileSecurity
|
35
|
-
SetSecurityDescriptorDacl
|
46
|
+
SetFileSecurity = Win32API.new('advapi32', 'SetFileSecurity', 'PPP', 'I')
|
47
|
+
SetSecurityDescriptorDacl = Win32API.new('advapi32', 'SetSecurityDescriptorDacl', 'PIPI', 'I')
|
48
|
+
SetSecurityDescriptorGroup = Win32API.new('advapi32', 'SetSecurityDescriptorGroup', 'PPI', 'I')
|
49
|
+
SetSecurityDescriptorOwner = Win32API.new('advapi32', 'SetSecurityDescriptorOwner', 'PPI', 'I')
|
50
|
+
SetSecurityDescriptorRMControl = Win32API.new('advapi32', 'SetSecurityDescriptorRMControl', 'PP', 'L')
|
51
|
+
SetSecurityDescriptorSacl = Win32API.new('advapi32', 'SetSecurityDescriptorSacl', 'PIPI', 'I')
|
36
52
|
|
37
53
|
def AddAce(acl, rev, index, list, length)
|
38
54
|
AddAce.call(acl, rev, index, list, length) != 0
|
@@ -42,6 +58,22 @@ module Windows
|
|
42
58
|
CopySid.call(sid_length, sid_buf, sid_source) != 0
|
43
59
|
end
|
44
60
|
|
61
|
+
def ConvertSidToStringSid(sid, buf)
|
62
|
+
ConvertSidToStringSid.call(sid, buf) != 0
|
63
|
+
end
|
64
|
+
|
65
|
+
def ConvertSecurityDescriptorToStringSecurityDescriptor(sid, revision, info, desc, desc_length)
|
66
|
+
ConvertSecurityDescriptorToStringSecurityDescriptor.call(sid, revision, info, desc, desc_length).call != 0
|
67
|
+
end
|
68
|
+
|
69
|
+
def ConvertStringSecurityDescriptorToSecurityDescriptor(sid, revision, desc, desc_length)
|
70
|
+
ConvertStringSecurityDescriptorToSecurityDescriptor.call(sid, revision, desc, desc_length) != 0
|
71
|
+
end
|
72
|
+
|
73
|
+
def ConvertStringSidToSid(string, sid)
|
74
|
+
ConvertStringSidToSid.call(string, sid) != 0
|
75
|
+
end
|
76
|
+
|
45
77
|
def GetAce(acl, index, ace)
|
46
78
|
GetAce.call(acl, index, ace) != 0
|
47
79
|
end
|
@@ -61,6 +93,26 @@ module Windows
|
|
61
93
|
def GetSecurityDescriptorDacl(descriptor, dacl_present, dacl, default)
|
62
94
|
GetSecurityDescriptorDacl.call(descriptor, dacl_present, dacl, default) != 0
|
63
95
|
end
|
96
|
+
|
97
|
+
def GetSecurityDescriptorGroup(descriptor, group, default)
|
98
|
+
GetSecurityDescriptorGroup.call(descriptor, group, default) != 0
|
99
|
+
end
|
100
|
+
|
101
|
+
def GetSecurityDescriptorLength(descriptor)
|
102
|
+
GetSecurityDescriptorLength.call(descriptor)
|
103
|
+
end
|
104
|
+
|
105
|
+
def GetSecurityDescriptorOwner(descriptor, owner, default)
|
106
|
+
GetSecurityDescriptorOwner.call(descriptor, owner, default) != 0
|
107
|
+
end
|
108
|
+
|
109
|
+
def GetSecurityDescriptorRMControl(descriptor, control)
|
110
|
+
GetSecurityDescriptorRMControl.call(descriptor, control)
|
111
|
+
end
|
112
|
+
|
113
|
+
def GetSecurityDescriptorSacl(descriptor, present, sacl, default)
|
114
|
+
GetSecurityDescriptorSacl.call(descriptor, present, sacl, default) != 0
|
115
|
+
end
|
64
116
|
|
65
117
|
def InitializeAcl(acl, length, revision = ACL_REVISION)
|
66
118
|
InitializeAcl.call(acl, length, revision) != 0
|
@@ -70,6 +122,10 @@ module Windows
|
|
70
122
|
InitializeSecurityDescriptor.call(descriptor, revision) != 0
|
71
123
|
end
|
72
124
|
|
125
|
+
def IsValidSecurityDescriptor(descriptor)
|
126
|
+
IsValidSecurityDescriptor.call(descriptor) != 0
|
127
|
+
end
|
128
|
+
|
73
129
|
def LookupAccountName(sys, name, sid, sid_size, domain, domain_size, use)
|
74
130
|
LookupAccountName.call(sys, name, sid, sid_size, domain, domain_size, use) != 0
|
75
131
|
end
|
@@ -85,5 +141,21 @@ module Windows
|
|
85
141
|
def SetSecurityDescriptorDacl(descriptor, present, dacl, default)
|
86
142
|
SetSecurityDescriptorDacl.call(descriptor, present, dacl, default) != 0
|
87
143
|
end
|
144
|
+
|
145
|
+
def SetSecurityDescriptorGroup(descriptor, group, default)
|
146
|
+
SetSecurityDescriptorGroup.call(descriptor, group, default) != 0
|
147
|
+
end
|
148
|
+
|
149
|
+
def SetSecurityDescriptorOwner(descriptor, owner, default)
|
150
|
+
SetSecurityDescriptorOwner.call(descriptor, owner, default) != 0
|
151
|
+
end
|
152
|
+
|
153
|
+
def SetSecurityDescriptorRMControl(descriptor, control)
|
154
|
+
SetSecurityDescriptorRMControl.call(descriptor, control)
|
155
|
+
end
|
156
|
+
|
157
|
+
def SetSecurityDescriptorSacl(descriptor, present, sacl, default)
|
158
|
+
SetSecurityDescriptorSacl.call(descriptor, present, sacl, default) != 0
|
159
|
+
end
|
88
160
|
end
|
89
161
|
end
|
data/lib/windows/system_info.rb
CHANGED
@@ -25,8 +25,8 @@ module Windows
|
|
25
25
|
GetComputerName = Win32API.new('kernel32', 'GetComputerName', 'PP', 'I')
|
26
26
|
GetComputerNameEx = Win32API.new('kernel32', 'GetComputerNameEx', 'PPP', 'I')
|
27
27
|
GetSystemInfo = Win32API.new('kernel32', 'GetSystemInfo', 'P', 'V')
|
28
|
-
GetUserName = Win32API.new('advapi32', 'GetUserName', '
|
29
|
-
GetUserNameEx = Win32API.new('secur32', 'GetUserNameEx', '
|
28
|
+
GetUserName = Win32API.new('advapi32', 'GetUserName', 'PP', 'I')
|
29
|
+
GetUserNameEx = Win32API.new('secur32', 'GetUserNameEx', 'LPP', 'I')
|
30
30
|
GetVersion = Win32API.new('kernel32', 'GetVersion', 'V', 'L')
|
31
31
|
GetVersionEx = Win32API.new('kernel32', 'GetVersionEx', 'P', 'I')
|
32
32
|
GetWindowsDirectory = Win32API.new('kernel32', 'GetWindowsDirectory', 'LI', 'I')
|
@@ -36,7 +36,7 @@ module Windows
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def GetComputerName(buffer, size)
|
39
|
-
|
39
|
+
GetComputerName.call(buffer, size) != 0
|
40
40
|
end
|
41
41
|
|
42
42
|
def GetComputerNameEx(name, buffer, size)
|
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.6.
|
5
|
+
gem.version = "0.6.3"
|
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,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.0
|
2
|
+
rubygems_version: 0.9.0.8
|
3
3
|
specification_version: 1
|
4
4
|
name: windows-pr
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.6.
|
7
|
-
date:
|
6
|
+
version: 0.6.3
|
7
|
+
date: 2007-02-02 00:00:00 -07:00
|
8
8
|
summary: Windows functions and constants predefined via Win32API
|
9
9
|
require_paths:
|
10
10
|
- lib
|