Module: RubySMB::Rap::NetShareEnum
- Included in:
- SMB1::Tree
- Defined in:
- lib/ruby_smb/rap/net_share_enum.rb
Overview
NetShareEnum (RAP opcode 0), as defined in MS-RAP 3.3.4.1.
Carried over \PIPE\LANMAN using SMB_COM_TRANSACTION. Request parameters
describe the shape of the data the server returns; response parameters
carry the RAP status, entry count, and buffer sizing hint, and the
response data block is an array of share_info_1 records.
Defined Under Namespace
Classes: Request, Response, ShareInfo1
Constant Summary collapse
- OPCODE =
0- PARAM_DESCRIPTOR =
Parameter descriptor for the RAP call itself: (W)ord info level, (r)eturn buffer pointer, (L)ength hint, (e)ntry count, (h)andle.
'WrLeh'.freeze
- DATA_DESCRIPTOR_LEVEL_1 =
Data descriptor for
share_info_1: (B)13 name, (B)yte pad, (W)ord type, (z) pointer to remark. See MS-RAP 3.2.4 for descriptor syntax. 'B13BWz'.freeze
- DEFAULT_RECEIVE_BUFFER_SIZE =
Default server receive-buffer size.
0x1000- SHARE_TYPES =
Share type codes carried in the low bits of
share_info_1.shi1_typeper MS-RAP 2.5.14. The RAP field is 16 bits wide, unlike the 32-bit SRVSVC variant in Dcerpc::Srvsvc::SHARE_TYPES. { 0x0000 => 'DISK', 0x0001 => 'PRINTER', 0x0002 => 'DEVICE', 0x0003 => 'IPC' }.freeze
- STYPE_SPECIAL =
0x8000- STYPE_TEMPORARY =
0x4000
Instance Method Summary collapse
-
#net_share_enum ⇒ Array<Hash>
Sends a RAP NetShareEnum over
\PIPE\LANMANusing the tree's existing SMB1 connection.
Instance Method Details
#net_share_enum ⇒ Array<Hash>
Sends a RAP NetShareEnum over \PIPE\LANMAN using the tree's
existing SMB1 connection. Does not rely on having an opened pipe FID
because Win9x does not permit OPEN_ANDX on \PIPE\LANMAN; RAP trans
is accepted directly against the IPC$ tree.
77 78 79 80 81 82 83 |
# File 'lib/ruby_smb/rap/net_share_enum.rb', line 77 def net_share_enum request = build_net_share_enum_request raw_response = rap_client.send_recv(request) response = RubySMB::SMB1::Packet::Trans::Response.read(raw_response) validate_trans_response!(response) parse_net_share_enum_response(response, raw_response) end |