Module: Windows::DeviceIO

Defined in:
lib/windows/device_io.rb

Constant Summary collapse

FILE_DEVICE_BEEP =

Device Types

0x00000001
FILE_DEVICE_CD_ROM =
0x00000002
FILE_DEVICE_CD_ROM_FILE_SYSTEM =
0x00000003
FILE_DEVICE_CONTROLLER =
0x00000004
0x00000005
FILE_DEVICE_DFS =
0x00000006
FILE_DEVICE_DISK =
0x00000007
FILE_DEVICE_DISK_FILE_SYSTEM =
0x00000008
FILE_DEVICE_FILE_SYSTEM =
0x00000009
FILE_DEVICE_INPORT_PORT =
0x0000000a
FILE_DEVICE_KEYBOARD =
0x0000000b
FILE_DEVICE_MAILSLOT =
0x0000000c
FILE_DEVICE_MIDI_IN =
0x0000000d
FILE_DEVICE_MIDI_OUT =
0x0000000e
FILE_DEVICE_MOUSE =
0x0000000f
FILE_DEVICE_MULTI_UNC_PROVIDER =
0x00000010
FILE_DEVICE_NAMED_PIPE =
0x00000011
FILE_DEVICE_NETWORK =
0x00000012
FILE_DEVICE_NETWORK_BROWSER =
0x00000013
FILE_DEVICE_NETWORK_FILE_SYSTEM =
0x00000014
FILE_DEVICE_NULL =
0x00000015
FILE_DEVICE_PARALLEL_PORT =
0x00000016
FILE_DEVICE_PHYSICAL_NETCARD =
0x00000017
FILE_DEVICE_PRINTER =
0x00000018
FILE_DEVICE_SCANNER =
0x00000019
FILE_DEVICE_SERIAL_MOUSE_PORT =
0x0000001a
FILE_DEVICE_SERIAL_PORT =
0x0000001b
FILE_DEVICE_SCREEN =
0x0000001c
FILE_DEVICE_SOUND =
0x0000001d
FILE_DEVICE_STREAMS =
0x0000001e
FILE_DEVICE_TAPE =
0x0000001f
FILE_DEVICE_TAPE_FILE_SYSTEM =
0x00000020
FILE_DEVICE_TRANSPORT =
0x00000021
FILE_DEVICE_UNKNOWN =
0x00000022
FILE_DEVICE_VIDEO =
0x00000023
FILE_DEVICE_VIRTUAL_DISK =
0x00000024
FILE_DEVICE_WAVE_IN =
0x00000025
FILE_DEVICE_WAVE_OUT =
0x00000026
FILE_DEVICE_8042_PORT =
0x00000027
FILE_DEVICE_NETWORK_REDIRECTOR =
0x00000028
FILE_DEVICE_BATTERY =
0x00000029
FILE_DEVICE_BUS_EXTENDER =
0x0000002a
FILE_DEVICE_MODEM =
0x0000002b
FILE_DEVICE_VDM =
0x0000002c
FILE_DEVICE_MASS_STORAGE =
0x0000002d
FILE_DEVICE_SMB =
0x0000002e
FILE_DEVICE_KS =
0x0000002f
FILE_DEVICE_CHANGER =
0x00000030
FILE_DEVICE_SMARTCARD =
0x00000031
FILE_DEVICE_ACPI =
0x00000032
FILE_DEVICE_DVD =
0x00000033
FILE_DEVICE_FULLSCREEN_VIDEO =
0x00000034
FILE_DEVICE_DFS_FILE_SYSTEM =
0x00000035
FILE_DEVICE_DFS_VOLUME =
0x00000036
FILE_DEVICE_SERENUM =
0x00000037
FILE_DEVICE_TERMSRV =
0x00000038
FILE_DEVICE_KSEC =
0x00000039
FILE_DEVICE_FIPS =
0x0000003A
FILE_DEVICE_INFINIBAND =
0x0000003B
METHOD_BUFFERED =
0
FILE_ANY_ACCESS =
0
DeviceIoControl =
Win32API.new('kernel32', 'DeviceIoControl', 'LLPLPLPP', 'I')

Instance Method Summary collapse

Instance Method Details

#CTL_CODE(device, function, method, access) ⇒ Object

Macros from WinIoCtl.h



76
77
78
# File 'lib/windows/device_io.rb', line 76

def CTL_CODE(device, function, method, access)
   ((device) << 16) | ((access) << 14) | ((function) << 2) | (method)
end

#DeviceIoControl(dev, code, in_buf, in_buf_size, out_buf, out_buf_size, bytes, overlapped) ⇒ Object



71
72
73
# File 'lib/windows/device_io.rb', line 71

def DeviceIoControl(dev, code, in_buf, in_buf_size, out_buf, out_buf_size, bytes, overlapped)
   DeviceIoControl.call(dev, code, in_buf, in_buf_size, out_buf, out_buf_size, bytes, overlapped) > 0
end

#FSCTL_SET_COMPRESSIONObject



80
81
82
# File 'lib/windows/device_io.rb', line 80

def FSCTL_SET_COMPRESSION 
   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, 0, 3)
end

#FSCTL_SET_SPARSEObject



84
85
86
# File 'lib/windows/device_io.rb', line 84

def FSCTL_SET_SPARSE
   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, 0, FILE_ANY_ACCESS)
end