Class: SmbRpc::Svcctl::EnumServicesStatusRes

Inherits:
BinData::Record
  • Object
show all
Defined in:
lib/smbRpc/svcctl/enumServicesStatus.rb

Instance Method Summary collapse

Instance Method Details

#getServiceObject



55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/smbRpc/svcctl/enumServicesStatus.rb', line 55

def getService
  enum_service_statusw = Enum_service_statusw.new(:servicesReturned => self.servicesReturned)
  enum_service_statusw.read(self.buffer)
  num = self.servicesReturned * 36
  serviceStr = self.buffer[num..-1 ].scan(/\w.+?\x00\x00\x00/)
  len = enum_service_statusw.service_status_array.length - 1      #get service array index
  len.downto(0).each do |idx|     #lopp backward b/c MS thaough it was cool to add a buffer in the middle of struct :(
    enum_service_statusw.service_status_array[idx].displayName = serviceStr.pop.unpack("v*").pack("C*").chop
    enum_service_statusw.service_status_array[idx].serviceName = serviceStr.pop.unpack("v*").pack("C*").chop
  end
  return enum_service_statusw.service_status_array
end