Sha256: 16b586ea53e1e2c991e318a82c7898024d9b16ce2fa020b99dd63bc9536b9adc

Contents?: true

Size: 1.01 KB

Versions: 10

Compression:

Stored size: 1.01 KB

Contents

module RubySMB
  module Dcerpc
    module Svcctl

      class SvcctlHandleW < Ndr::NdrLpStr; end

      # [3.1.4.15 ROpenSCManagerW (Opnum 15)](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/dc84adb3-d51d-48eb-820d-ba1c6ca5faf2)
      class OpenSCManagerWRequest < BinData::Record
        attr_reader :opnum

        endian :little

        svcctl_handle_w :lp_machine_name
        string          :pad1, length: -> { pad_length(self.lp_machine_name) }
        ndr_lp_str      :lp_database_name
        string          :pad2, length: -> { pad_length(self.lp_database_name) }
        uint32          :dw_desired_access

        def initialize_instance
          super
          @opnum = OPEN_SC_MANAGER_W
        end

        # Determines the correct length for the padding, so that the next
        # field is 4-byte aligned.
        def pad_length(prev_element)
          offset = (prev_element.abs_offset + prev_element.to_binary_s.length) % 4
          (4 - offset) % 4
        end

      end

    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ruby_smb-2.0.12 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.11 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.10 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.9 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.8 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.7 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.6 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.5 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.4 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb
ruby_smb-2.0.3 lib/ruby_smb/dcerpc/svcctl/open_sc_manager_w_request.rb