lib/ruby_smb/dcerpc/drsr/drs_get_nc_changes_request.rb
require 'openssl'
module RubySMB
module Dcerpc
module Drsr
#[4.1.10.2.2 DRS_MSG_GETCHGREQ_V3](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/6a2a056c-ac7f-47d0-9e6d-9023a4e5947c)
class DrsMsgGetchgreqV3 < Ndr::NdrStruct
include AttrtypRequestPlugin
default_parameter byte_align: 8
uuid :uuid_dsa_obj_dest
uuid :uuid_invoc_id_src
ds_name_ptr :p_nc
usn_vector :usnvec_from
uptodate_vector_v1_ext_ptr :p_up_to_date_vec_dest_v1
partial_attr_vector_v1_ext_ptr :p_partial_attr_vec_dest_v1
schema_prefix_table :prefix_table_dest
ndr_uint32 :ul_flags
ndr_uint32 :c_max_objects
ndr_uint32 :c_max_bytes
ndr_uint32 :ul_extended_op
end
# [4.1.10.2.3 DRS_MSG_GETCHGREQ_V4](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/9db4db21-8ccd-4c81-8662-6e2baff8426c)
class DrsMsgGetchgreqV4 < Ndr::NdrStruct
default_parameter byte_align: 8
uuid :uuid_transport_obj
mtx_addr_ptr :pmtx_return_address
drs_msg_getchgreq_v3 :v3
end
#[4.1.10.2.4 DRS_MSG_GETCHGREQ_V5](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/fd24b73c-7b81-43af-8c77-65bc2e3181b7)
class DrsMsgGetchgreqV5 < Ndr::NdrStruct
default_parameter byte_align: 8
uuid :uuid_dsa_obj_dest
uuid :uuid_invoc_id_src
ds_name_ptr :p_nc
usn_vector :usnvec_from
uptodate_vector_v1_ext_ptr :p_up_to_date_vec_dest_v1
ndr_uint32 :ul_flags
ndr_uint32 :c_max_objects
ndr_uint32 :c_max_bytes
ndr_uint32 :ul_extended_op
ndr_uint64 :li_fsmo_info
end
#[4.1.10.2.5 DRS_MSG_GETCHGREQ_V7](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/5ef4f597-a397-4f6f-a98b-7a034247d886)
class DrsMsgGetchgreqV7 < DrsMsgGetchgreqV4
include AttrtypRequestPlugin
default_parameter byte_align: 8
partial_attr_vector_v1_ext_ptr :p_partial_attr_set
partial_attr_vector_v1_ext_ptr :p_partial_attr_set_ex
schema_prefix_table :prefix_table_dest
end
#[4.1.10.2.6 DRS_MSG_GETCHGREQ_V8](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/4304bb4a-e9b5-4c8a-8731-df4d6f9ab567)
class DrsMsgGetchgreqV8 < DrsMsgGetchgreqV5
include AttrtypRequestPlugin
default_parameter byte_align: 8
partial_attr_vector_v1_ext_ptr :p_partial_attr_set
partial_attr_vector_v1_ext_ptr :p_partial_attr_set_ex
schema_prefix_table :prefix_table_dest
end
#[4.1.10.2.7 DRS_MSG_GETCHGREQ_V10](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/92b1b77d-2058-46e0-9e8c-6664b96a0cf9)
class DrsMsgGetchgreqV10 < DrsMsgGetchgreqV8
default_parameter byte_align: 8
ndr_uint32 :ul_more_flags
end
#[4.1.10.2.8 DRS_MSG_GETCHGREQ_V11](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/cb2bab15-950b-48f8-af00-118e186a1311)
class DrsMsgGetchgreqV11 < DrsMsgGetchgreqV10
default_parameter byte_align: 8
uuid :correlation_id
var_size_buffer_with_version_ptr :p_reserved_buffer
end
# [4.1.10.2.1 DRS_MSG_GETCHGREQ](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/6a2a056c-ac7f-47d0-9e6d-9023a4e5947c)
class DrsMsgGetchgreq < Ndr::NdrStruct
default_parameter byte_align: 8
ndr_uint32 :switch_type, initial_value: -> { @obj.parent.parent.dw_in_version.to_i }
choice :msg_getchg, selection: :switch_type, byte_align: 8 do
drs_msg_getchgreq_v4 4
drs_msg_getchgreq_v5 5
drs_msg_getchgreq_v7 7
drs_msg_getchgreq_v8 8
drs_msg_getchgreq_v10 10
drs_msg_getchgreq_v11 11
end
end
# [4.1.10 IDL_DRSGetNCChanges (Opnum 3)](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/b63730ac-614c-431c-9501-28d6aca91894)
class DrsGetNcChangesRequest < BinData::Record
attr_reader :opnum
drs_handle :h_drs
ndr_uint32 :dw_in_version
drs_msg_getchgreq :pmsg_in
def initialize_instance
super
@opnum = DRS_GET_NC_CHANGES
end
end
end
end
end