Files
wmic/pysamba/rpc/rpc_request.py
2019-02-16 00:16:52 +01:00

60 lines
1.7 KiB
Python

###########################################################################
#
# This program is part of Zenoss Core, an open source monitoring platform.
# Copyright (C) 2008-2010, Zenoss Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2, or (at your
# option) any later version, as published by the Free Software Foundation.
#
# For complete information please visit: http://www.zenoss.com/oss/
#
###########################################################################
__doc__="Define the rpc_request structure."
from pysamba.library import *
class rpc_request(Structure): pass
class dcerpc_pipe(Structure): pass
class GUID(Structure):
_fields_ = [
]
class DATA_BLOB(Structure):
_fields_ = [
('data', POINTER(uint8_t)),
('length', size_t),
]
class ndr(Structure):
_fields_ = [
('table', c_void_p), # lie: POINTER(dcerpc_interface_table)
('opnum', uint32_t),
('struct_ptr', c_void_p),
('mem_ctx', c_void_p), # lie: POINTER(TALLOC_CTX)
]
class async(Structure):
_fields_ = [
('callback', CFUNCTYPE(None, POINTER(rpc_request))),
('private', c_void_p),
]
rpc_request._fields_ = [
('next', POINTER(rpc_request)),
('prev', POINTER(rpc_request)),
('p', POINTER(dcerpc_pipe)),
('status', NTSTATUS),
('call_id', uint32_t),
('state', enum),
('payload', DATA_BLOB),
('flags', uint32_t),
('fault_code', uint32_t),
('recv_handler', c_void_p), # lie
('object', POINTER(GUID)),
('opnum', uint16_t),
('request_data', DATA_BLOB),
('async_call', BOOL),
('ndr', ndr),
('async', async),
]