📄 wtx.html
字号:
} WTX_VALUE_T;</pre><p>The types defined above should always be used to set the <b>valueType</b> field in the <b>WTX_VALUE</b> structure (shown below) in order to specify the type of the passed value.<p>A parameter or result of simple type is returned in a <b>WTX_VALUE</b> embedded in a <b>WTX_MSG_PARAM</b> or <b>WTX_MS_RESULT</b> message respectively.The type is given by <b>valueType</b> and the value given by <b>value_u.v_xxx</b>.<p><pre>typedef struct wtx_value /* Simple type value */ { WTX_VALUE_T valueType; /* Value type */ union { INT8 v_int8; /* 8 bit signed value */ INT16 v_int16; /* 16 bit signed value */ INT32 v_int32; /* 32 bit signed value */ UINT8 v_uint8; /* 8 bit unsigned value */ UINT16 v_uint16; /* 16 bit unsigned value */ UINT32 v_uint32; /* 32 bit unsigned value */ double v_double; /* Double value */ BOOL32 v_bool32; /* 32 bit boolean value */ char * v_pchar; /* String value */ void * v_pvoid; /* Void pointer value */ TGT_ADDR_T v_tgt_addr; /* Target address value */ TGT_ARG_T v_tgt_arg; /* Target task arg. value */ } value_u; } WTX_VALUE;</pre><p>A simple type-parameter message has the structure below:<p><pre>typedef struct wtx_msg_param /* Simple request parameter */ { WTX_CORE wtxCore; /* WTX message core */ WTX_VALUE param; /* Param value of call */ } WTX_MSG_PARAM;</pre><p>A simple type-return-value message has the structure below:<p><pre>typedef struct wtx_msg_result /* Simple request result */ { WTX_CORE wtxCore; /* WTX message core */ WTX_VALUE val; /* Result value of call */ } WTX_MSG_RESULT;</pre><p></blockquote><h4>WTX ERROR CODES</h4><blockquote><p>When a failure occurs, the WTX requests can return one of the followingERROR codes:<p><pre>typedef enum wtx_error_t { /* Target Server Errors */ WTX_ERR_SVR_TARGET_NOT_ATTACHED = (WTXERR_BASE_NUM | 1), WTX_ERR_SVR_INVALID_EVENTPOINT = (WTXERR_BASE_NUM | 2), WTX_ERR_SVR_FILE_NOT_FOUND = (WTXERR_BASE_NUM | 3), WTX_ERR_SVR_INVALID_FIND_REQUEST = (WTXERR_BASE_NUM | 4), WTX_ERR_SVR_INVALID_FLAGS = (WTXERR_BASE_NUM | 5), WTX_ERR_SVR_INVALID_FILE_DESCRIPTOR = (WTXERR_BASE_NUM | 6), WTX_ERR_SVR_EINVAL = (WTXERR_BASE_NUM | 7), WTX_ERR_SVR_CANT_START_CONSOLE = (WTXERR_BASE_NUM | 8), WTX_ERR_SVR_INVALID_CONSOLE = (WTXERR_BASE_NUM | 9), WTX_ERR_SVR_NO_SCALABLE_AGENT = (WTXERR_BASE_NUM | 10), WTX_ERR_SVR_CANT_ADD_WTX_SERVICE = (WTXERR_BASE_NUM | 11), WTX_ERR_SVR_NO_VIO_CHANNEL = (WTXERR_BASE_NUM | 12), WTX_ERR_SVR_BKEND_LOG_IN_USE = (WTXERR_BASE_NUM | 13), WTX_ERR_SVR_WTX_LOG_IN_USE = (WTXERR_BASE_NUM | 14), WTX_ERR_SVR_DOESNT_RESPOND = (WTXERR_BASE_NUM | 15), WTX_ERR_SVR_IS_DEAD = (WTXERR_BASE_NUM | 16), WTX_ERR_SVR_BAD_TARGET_CHECKSUM = (WTXERR_BASE_NUM | 17), WTX_ERR_SVR_CHECKSUM_MISMATCH = (WTXERR_BASE_NUM | 18), /* Common Server Errors */ WTX_ERR_SVR_NOT_ENOUGH_MEMORY = (WTXERR_BASE_NUM | 20), WTX_ERR_SVR_ACCESS_DENIED = (WTXERR_BASE_NUM | 21), WTX_ERR_SVR_WIND_BASE_NOT_SET = (WTXERR_BASE_NUM | 22), WTX_ERR_SVR_SERVICE_NOT_AVAILABLE = (WTXERR_BASE_NUM | 23), WTX_ERR_SVR_INVALID_CLIENT_ID = (WTXERR_BASE_NUM | 24), WTX_ERR_SVR_CLIENT_NOT_ATTACHED = (WTXERR_BASE_NUM | 25), WTX_ERR_SVR_TARGET_UNKNOWN = (WTXERR_BASE_NUM | 26), WTX_ERR_SVR_INVALID_DEVICE = (WTXERR_BASE_NUM | 27), WTX_ERR_SVR_CANT_CONNECT_LICENSE_DAEMON = (WTXERR_BASE_NUM | 28), WTX_ERR_SVR_INVALID_LICENSE = (WTXERR_BASE_NUM | 29), /* Registry Errors */ WTX_ERR_REGISTRY_NAME_NOT_FOUND = (WTXERR_BASE_NUM | 30), WTX_ERR_REGISTRY_BAD_PATTERN = (WTXERR_BASE_NUM | 31), WTX_ERR_REGISTRY_NAME_CLASH = (WTXERR_BASE_NUM | 32), WTX_ERR_REGISTRY_DB_DIR_NOT_FOUND = (WTXERR_BASE_NUM | 33), WTX_ERR_REGISTRY_DB_FILE_ERROR = (WTXERR_BASE_NUM | 34), /* Object Module Management Errors */ WTX_ERR_LOADER_TEXT_IN_USE = (WTXERR_BASE_NUM | 40), WTX_ERR_LOADER_ILLEGAL_FLAGS_COMBINATION = (WTXERR_BASE_NUM | 41), WTX_ERR_LOADER_NO_RELOCATION_ROUTINE = (WTXERR_BASE_NUM | 42), WTX_ERR_LOADER_CANT_GET_SEGMENT_ADDRESSES = (WTXERR_BASE_NUM | 43), WTX_ERR_LOADER_UNKNOWN_RELOCATION_ENTRY = (WTXERR_BASE_NUM | 44), WTX_ERR_LOADER_UNKNOWN_COMMAND_FLAG = (WTXERR_BASE_NUM | 45), WTX_ERR_LOADER_UNKNOWN_OBJ_MODULE_FORMAT = (WTXERR_BASE_NUM | 46), WTX_ERR_LOADER_NULL_SIZE_OBJ_MODULE = (WTXERR_BASE_NUM | 47), WTX_ERR_LOADER_OBJ_MODULE_NOT_FOUND = (WTXERR_BASE_NUM | 48), WTX_ERR_LOADER_BAD_CHECKSUM = (WTXERR_BASE_NUM | 49), WTX_ERR_LOADER_CANT_ATTACH_OMF_MANAGER = (WTXERR_BASE_NUM | 50), WTX_ERR_LOADER_OBJ_MODULE_NOT_APPROPRIATE = (WTXERR_BASE_NUM | 51), WTX_ERR_LOADER_RELOCATION_OFFSET_TOO_LARGE= (WTXERR_BASE_NUM | 52), WTX_ERR_LOADER_SYMBOL_NOT_FROM_SDA_SECTION= (WTXERR_BASE_NUM | 53), WTX_ERR_LOADER_MAX_MODULES_LOADED = (WTXERR_BASE_NUM | 54), WTX_ERR_LOADER_RELOCATION_ERROR = (WTXERR_BASE_NUM | 55), WTX_ERR_LOADER_NO_VERIFICATION_ROUTINE = (WTXERR_BASE_NUM | 56), WTX_ERR_LOADER_LOAD_CANCELED = (WTXERR_BASE_NUM | 57), WTX_ERR_LOADER_LOAD_IN_PROGRESS = (WTXERR_BASE_NUM | 58), WTX_ERR_LOADER_ALREADY_LOADED = (WTXERR_BASE_NUM | 59), /* Symbol Management Errors */ WTX_ERR_SYMTBL_INVALID_SYMTBL = (WTXERR_BASE_NUM | 60), WTX_ERR_SYMTBL_SYMBOL_NOT_FOUND = (WTXERR_BASE_NUM | 61), WTX_ERR_SYMTBL_TABLE_NOT_EMPTY = (WTXERR_BASE_NUM | 62), WTX_ERR_SYMTBL_NAME_CLASH = (WTXERR_BASE_NUM | 63), WTX_ERR_SYMTBL_NO_SUCH_MODULE = (WTXERR_BASE_NUM | 64), WTX_ERR_SYMTBL_SYMBOL_NAME_TOO_LONG = (WTXERR_BASE_NUM | 65), /* Target Memory Management Errors */ WTX_ERR_TGTMEM_NOT_ENOUGH_MEMORY = (WTXERR_BASE_NUM | 70), WTX_ERR_TGTMEM_INVALID_POOL_SIZE = (WTXERR_BASE_NUM | 71), WTX_ERR_TGTMEM_INVALID_BLOCK = (WTXERR_BASE_NUM | 72), WTX_ERR_TGTMEM_PAGE_SIZE_UNAVAILABLE = (WTXERR_BASE_NUM | 73), WTX_ERR_TGTMEM_BLOCK_CONFLICT = (WTXERR_BASE_NUM | 74), WTX_ERR_TGTMEM_CANT_UNMAP_UNKNOWN_BLOCK = (WTXERR_BASE_NUM | 75), WTX_ERR_TGTMEM_UNMAPPED_MEMORY = (WTXERR_BASE_NUM | 76), /* generic DLL error codes */ WTX_ERR_DLL_CANT_OPEN_SHARED_FILE = (WTXERR_BASE_NUM | 100), WTX_ERR_DLL_CANT_BIND_FUNCTION = (WTXERR_BASE_NUM | 101), WTX_ERR_DLL_CANT_CLOSE_SHARED_FILE = (WTXERR_BASE_NUM | 102), /* Internal object error codes */ WTX_ERR_OBJ_INVALID_OBJECT = (WTXERR_BASE_NUM | 110), /* Agent error codes */ WTX_ERR_AGENT_UNSUPPORTED_REQUEST = (WTXERR_BASE_NUM | 200), WTX_ERR_AGENT_INVALID_PARAMS = (WTXERR_BASE_NUM | 201), WTX_ERR_AGENT_MEM_ACCESS_ERROR = (WTXERR_BASE_NUM | 202), WTX_ERR_AGENT_AGENT_MODE_ERROR = (WTXERR_BASE_NUM | 203), WTX_ERR_AGENT_RT_ERROR = (WTXERR_BASE_NUM | 204), WTX_ERR_AGENT_INVALID_CONTEXT = (WTXERR_BASE_NUM | 205), WTX_ERR_AGENT_INVALID_VIO_CHANNEL = (WTXERR_BASE_NUM | 206), WTX_ERR_AGENT_INVALID_EVENT = (WTXERR_BASE_NUM | 207), WTX_ERR_AGENT_INVALID_EVENTPOINT = (WTXERR_BASE_NUM | 208), WTX_ERR_AGENT_GOPHER_FAULT = (WTXERR_BASE_NUM | 209), WTX_ERR_AGENT_GOPHER_TRUNCATED = (WTXERR_BASE_NUM | 210), WTX_ERR_AGENT_EVENTPOINT_TABLE_FULL = (WTXERR_BASE_NUM | 211), WTX_ERR_AGENT_NO_AGENT_PROC = (WTXERR_BASE_NUM | 212), WTX_ERR_AGENT_NO_RT_PROC = (WTXERR_BASE_NUM | 213), WTX_ERR_AGENT_PROC_FAILED = (WTXERR_BASE_NUM | 214), WTX_ERR_AGENT_PATTERN_NOT_FOUND = (WTXERR_BASE_NUM | 215), WTX_ERR_AGENT_HW_BP_REGS_EXHAUSTED = (WTXERR_BASE_NUM | 216), WTX_ERR_AGENT_INVALID_HW_BP = (WTXERR_BASE_NUM | 217), WTX_ERR_AGENT_NO_CONNECTION = (WTXERR_BASE_NUM | 220), WTX_ERR_AGENT_CONNECTION_BUSY = (WTXERR_BASE_NUM | 221), WTX_ERR_AGENT_COMMUNICATION_ERROR = (WTXERR_BASE_NUM | 222), WTX_ERR_AGENT_GOPHER_SYNTAX = (WTXERR_BASE_NUM | 223), /* WTX C API error codes */ WTX_ERR_API = (WTXERR_BASE_NUM | 300), WTX_ERR_API_MEMALLOC = (WTXERR_BASE_NUM | 301), WTX_ERR_API_HANDLER_NOT_FOUND = (WTXERR_BASE_NUM | 302), WTX_ERR_API_NOT_CONNECTED = (WTXERR_BASE_NUM | 303), WTX_ERR_API_INVALID_ARG = (WTXERR_BASE_NUM | 304), WTX_ERR_API_SERVER_NOT_FOUND = (WTXERR_BASE_NUM | 305), WTX_ERR_API_ALREADY_CONNECTED = (WTXERR_BASE_NUM | 306), WTX_ERR_API_AMBIGUOUS_SERVER_NAME = (WTXERR_BASE_NUM | 307), WTX_ERR_API_REGS_GET_PARTIAL_READ = (WTXERR_BASE_NUM | 308), WTX_ERR_API_INVALID_HANDLE = (WTXERR_BASE_NUM | 309), WTX_ERR_API_REGISTRY_UNREACHABLE = (WTXERR_BASE_NUM | 310), WTX_ERR_API_SERVICE_NOT_REGISTERED = (WTXERR_BASE_NUM | 311), WTX_ERR_API_SERVICE_ALREADY_REGISTERED = (WTXERR_BASE_NUM | 312), WTX_ERR_API_TOOL_DISCONNECTED = (WTXERR_BASE_NUM | 313), WTX_ERR_API_REQUEST_FAILED = (WTXERR_BASE_NUM | 314), WTX_ERR_API_REQUEST_TIMED_OUT = (WTXERR_BASE_NUM | 315), WTX_ERR_API_FILE_NOT_FOUND = (WTXERR_BASE_NUM | 316), WTX_ERR_API_SERVICE_ALREADY_STARTED = (WTXERR_BASE_NUM | 317), WTX_ERR_API_CANT_OPEN_SOCKET = (WTXERR_BASE_NUM | 318), WTX_ERR_API_CANT_GET_HOSTNAME = (WTXERR_BASE_NUM | 319), WTX_ERR_API_FILE_NOT_ACCESSIBLE = (WTXERR_BASE_NUM | 320), WTX_ERR_API_NULL_SIZE_FILE = (WTXERR_BASE_NUM | 321), WTX_ERR_API_CANT_READ_FROM_FILE = (WTXERR_BASE_NUM | 322), /* WTX Exchange Error Codes */ WTX_ERR_EXCHANGE = (WTXERR_BASE_NUM | 400), WTX_ERR_EXCHANGE_INVALID_HANDLE = (WTXERR_BASE_NUM | 401), WTX_ERR_EXCHANGE_DATA = (WTXERR_BASE_NUM | 402), WTX_ERR_EXCHANGE_MEMALLOC = (WTXERR_BASE_NUM | 403), WTX_ERR_EXCHANGE_NO_SERVER = (WTXERR_BASE_NUM | 404), WTX_ERR_EXCHANGE_INVALID_ARG = (WTXERR_BASE_NUM | 405), WTX_ERR_EXCHANGE_MARSHALPTR = (WTXERR_BASE_NUM | 406), WTX_ERR_EXCHANGE_TIMEOUT = (WTXERR_BASE_NUM | 407), WTX_ERR_EXCHANGE_BAD_KEY = (WTXERR_BASE_NUM | 408), WTX_ERR_EXCHANGE_REQUEST_UNSUPPORTED = (WTXERR_BASE_NUM | 409), WTX_ERR_EXCHANGE_TRANSPORT_UNSUPPORTED = (WTXERR_BASE_NUM | 410), WTX_ERR_EXCHANGE_TRANSPORT_ERROR = (WTXERR_BASE_NUM | 411), WTX_ERR_EXCHANGE_TRANSPORT_DISCONNECT = (WTXERR_BASE_NUM | 412), WTX_ERR_EXCHANGE_NO_TRANSPORT = (WTXERR_BASE_NUM | 413), WTX_ERR_LAST = (WTXERR_BASE_NUM | 0xFFFF) } WTX_ERROR_T;</pre><p></blockquote><h4>NOTE</h4><blockquote><p>Many WTX requests can return the <b>WTX_ERR_SVR_NOT_ENOUGH_MEMORY</b> error codeindicating that the server process has run out of memory. This failure isnot likely to occur but it can be caused by a too small virtual or physicalmemory configuration on the host where the target server is running.<p></blockquote><h4>UNDERLYING PROTOCOL</h4><blockquote><p>The WTX protocol can be based on any underlying transport protocol. Thecurrent version uses ONC RPC over TCP/IP. This allows tools and targetservers to run on the same or different hosts. The RPC program number ofthe server is embedded in the key returned by the WTX registry daemon<b><a href="../../tornado/tools/wtxregd.html#top" >wtxregd</a></b>.<p>WTX employs the SUN eXternal Data Representation (XDR).<p>The RPC-based WTX protocol uses the UNIX authentication based on user id andgroup id in order to restrict the use of the target server to authorizedpeople. See the <i>Tornado User's Guide: Tools</i> for the Windows NT authentication method.<p></blockquote><h4>INCLUDE FILES</h4><blockquote><p><b>wtx.h</b> <b>wtxtypes.h</b> <b>wtxmsg.h</b> <b>wtxerr.h</b><p></blockquote><h4>SEE ALSO</h4><blockquote><p><i>Tornado User's Guide, API Reference Manual: WTX Protocol, </i><i>WTX C Library, WTX Tcl Library </i><hr><a name="INFORMATION"></a><p align=right><a href="rtnIndex.html"><i>WTX Protocol : Requests</i></a></p></blockquote><h1>INFORMATION</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>INFORMATION</strong> - WTX-protocol-requests manual layout</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WTX_INPUT_MESSAGEOUTPUT: WTX_OUTPUT_MESSAGE</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This paragraph gives a description of what the WTX protocol request does.It gives detailed information about its input and output messages. It alsoprovides guidelines for using the request.<p>In this document message names and other structure names are representedin caps: <b>THIS_IS_A_WTX_MESSAGE</b>. Fields in the messages are representedin bold: <b>thisIsAfield</b> or <b>thisIsAfield</b> in the <b>THIS_IS_A_WTX_MESSAGE</b>message structure.<p>The protocol messages are represented as C structures. For example the<b>WTX_CORE</b> message is:<p><pre>typedef struct wtx_core /* WTX message core */ { UINT32 objId; /* identifier */ WTX_ERROR_T errCode; /* service error code */ UINT32 protVersion; /* WTX protocol version */ } WTX_CORE;</pre><p>Many messages are embedded in other messages. For example, <b>WTX_CORE</b>is embedded in <b>WTX_MSG_PARAM</b>:<p><pre>typedef struct wtx_msg_param /* Simple request parameter */ { WTX_CORE wtxCore; /* WTX message core */ WTX_VALUE param; /* Param value of call */ } WTX_MSG_PARAM;</pre><p>Thus the <b>errCode</b> field in <b>WTX_CORE</b> can also be referred to as <b>wtxCore.errCode</b>.<p></blockquote><h4>ASSOCIATED EVENTS</h4><blockquote><p><p>This paragraph describes the WTX events that are related to this request.It mentions the events that are either sent to other tools whenthe request is processed by the target server or target events that can be caused by this request.<p></blockquote><h4>IMPORTANT</h4><blockquote><p><p>This paragraph gives any important hints about the request.<p></blockquote><h4>LIMITS</h4><blockquote><p><p>This paragraph gives the values of all hard-coded limits associated with
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -