fe2a6db786
rust / build / test / clippy / fmt (push) Has been cancelled
Layout:
- src/ .NET 10 x64 reference: MxNativeCodec, MxNativeClient,
MxAsbClient, probes, tests, harnesses. Executable spec.
- design/ Architectural plan for the Rust port (M0–M6), error
model, protocol invariants, risks (R1–R16), adversarial
review log (review.md).
- rust/ Rust workspace. M0 skeleton + M1 codec parity.
mxaccess-codec: 215 unit tests + 2 cross-implementation
parity tests (byte-identical against .NET reference).
Other crates are M0 stubs awaiting M2+.
- captures/ Frida + netsh + pcap evidence per CLAUDE.md
("captures are evidence, not throwaway logs").
- analysis/ Decompiled C# (frida/proxy/decompiled-*),
Ghidra exports for native DLLs (`exports/` only —
working state at `projects/` and AVEVA's input
binaries at `input/` are gitignored).
- docs/ Reverse-engineering reference docs.
- tools/ Setup-LiveProbeEnv.ps1 (Infisical credential fetcher),
Compute-Crc.ps1 (.NET parity helper).
- .github/workflows/ Rust CI: fmt + build + test + clippy on Windows.
- LICENSE MIT (Joseph Doherty, 2026).
Verified:
- cargo test --workspace → 217 passed (215 unit + 2 .NET parity), 0 failed
- cargo clippy --workspace -- -D warnings → clean
- cargo fmt --all -- --check → clean
- cargo publish --dry-run -p mxaccess-codec → packages cleanly
Excluded from history (see .gitignore):
- **/bin, **/obj, **/target — build artifacts
- analysis/ghidra/projects/ — Ghidra working state (regenerable)
- analysis/ghidra/input/ — AVEVA proprietary DLLs (vendor IP)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
17 KiB
17 KiB
LmxProxy.dll
- Path:
C:\Program Files (x86)\ArchestrA\Framework\Bin\LmxProxy.dll - Size: 241816 bytes
- Machine: x86
- PE timestamp: 2020-02-24T11:57:14+00:00
- ImageBase:
0x10000000
Exports
| Ordinal | RVA | Name |
|---|---|---|
| 1 | 0x000080d6 | DllCanUnloadNow |
| 2 | 0x0000c873 | DllGetClassObject |
| 3 | 0x0000ba13 | DllRegisterServer |
| 4 | 0x0000ba22 | DllUnregisterServer |
Imports
LicAPINativeWrapper.dll:?ReleaseLicense@NativeExport_CppCliWrapper_LicApiClient@@QAE_NXZ,?AddLicenseRequestInfo@NativeExport_CppCliWrapper_LicApiClient@@QAE_NPB_W000@Z,?AcquireLicense@NativeExport_CppCliWrapper_LicApiClient@@QAE_NXZ,?GetLicenseAcquisitionError@NativeExport_CppCliWrapper_LicApiClient@@QAEHXZ,?ResetLicenseRequestInfo@NativeExport_CppCliWrapper_LicApiClient@@QAE_NXZ,??0NativeExport_CppCliWrapper_LicApiClient@@QAE@XZ,?LoadLibraries@NativeExport_CppCliWrapper_LicApiClient@@QAE_NAAH@Z,?CreateClientConnection@NativeExport_CppCliWrapper_LicApiClient@@QAE_NXZ,?GetDeviceIdentity@NativeExport_CppCliWrapper_LicApiClient@@QAE_NPAPB_W@Z,??1NativeExport_CppCliWrapper_LicApiClient@@QAE@XZKERNEL32.dll:MultiByteToWideChar,lstrlenW,GetLastError,FreeLibrary,FindClose,FindFirstFileW,GetModuleFileNameW,InterlockedIncrement,LocalFree,GetProcAddress,LoadLibraryExW,LocalAlloc,FormatMessageW,lstrlenA,InterlockedDecrement,SystemTimeToTzSpecificLocalTime,FileTimeToSystemTime,RaiseException,EnterCriticalSection,LeaveCriticalSection,InitializeCriticalSectionAndSpinCount,InterlockedExchange,GetModuleHandleW,lstrcmpiW,CloseHandle,DisableThreadLibraryCalls,CreateEventW,LoadResource,FindResourceW,GetSystemDirectoryW,GetWindowsDirectoryW,FindNextFileW,CreateDirectoryW,GetCurrentThreadId,GetLocalTime,GetUserDefaultLCID,GetTickCount,DeleteFileW,GetCurrentProcess,GetCurrentProcessId,CreateFileW,GetSystemTimeAsFileTime,QueryPerformanceCounter,IsDebuggerPresent,SetUnhandledExceptionFilter,UnhandledExceptionFilter,TerminateProcess,InterlockedCompareExchange,Sleep,DecodePointer,EncodePointer,DeleteCriticalSection,SizeofResourceUSER32.dll:CharNextW,KillTimer,SetTimer,CreateWindowExW,DestroyWindow,CharUpperBuffW,ShowWindowADVAPI32.dll:RegCreateKeyExW,RegQueryValueExW,RegCloseKey,RegOpenKeyExW,RegNotifyChangeKeyValue,RegEnumKeyExW,RegQueryInfoKeyW,RegSetValueExW,RegDeleteValueW,RegDeleteKeyWole32.dll:CoGetClassObject,CoTaskMemRealloc,CoTaskMemFree,CLSIDFromString,CoFileTimeNow,StringFromGUID2,CoCreateInstance,CoTaskMemAllocOLEAUT32.dll:SysAllocString,SysFreeString,SysStringLen,VariantInit,VariantClear,VariantCopy,VariantChangeType,SysAllocStringByteLen,SysStringByteLen,SysAllocStringLen,SetErrorInfo,SafeArrayUnaccessData,SafeArrayAccessData,SafeArrayGetLBound,SafeArrayCreateEx,GetRecordInfoFromGuids,SafeArrayGetDim,GetErrorInfo,SafeArrayPutElement,SafeArrayCreate,LoadTypeLib,UnRegisterTypeLib,RegisterTypeLib,VarUI4FromStr,LoadRegTypeLib,VarBstrCmp,VarBstrCat,SafeArrayDestroySHLWAPI.dll:PathRemoveFileSpecW,PathAppendWMSVCP100.dll:??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z,??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z,?_Orphan_all@_Container_base0@std@@QAEXXZ,??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z,??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z,??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z,??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ,??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z,?ends@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z,?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z,??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z,??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z,??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ,??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z,?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z,??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ,?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z,?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@_JHH@Z,?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ,?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z,??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ,?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ,??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ,?width@ios_base@std@@QBE_JXZ,?flags@ios_base@std@@QBEHXZ,?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ,?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z,?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE_JPB_W_J@Z,?width@ios_base@std@@QAE_J_J@Z,?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z,?uncaught_exception@std@@YA_NXZ,?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ,?good@ios_base@std@@QBE_NXZ,?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ,?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ,?_BADOFF@std@@3_JB,?setf@ios_base@std@@QAEHHH@Z,?_Xout_of_range@std@@YAXPBD@Z,?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z,?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z,?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ,?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ,?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ,?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ,?_Xlength_error@std@@YAXPBD@Z,?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ,??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ,?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAEXXZ,?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAEXXZ,?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE_JXZ,?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ,?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE_JPA_W_J@Z,?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE_JPB_W_J@Z,?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_W_J@Z,?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ,?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z,?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ,?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z,?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z,?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z,?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZdbghelp.dll:MiniDumpWriteDumpMSVCR100.dll:??2@YAPAXI@Z,__clean_type_info_names_internal,_crt_debugger_hook,_except_handler4_common,_onexit,_lock,__dllonexit,_unlock,?terminate@@YAXXZ,_snwprintf_s,?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z,wcsrchr,_purecall,_resetstkoflw,wcsncpy_s,malloc,wcsstr,memcmp,_vsnwprintf_s,swprintf_s,wcscmp,wcscpy_s,_recalloc,calloc,??0exception@std@@QAE@ABV01@@Z,_makepath_s,_splitpath_s,?_type_info_dtor_internal_method@type_info@@QAEXXZ,__CppXcptFilter,_amsg_exit,_initterm_e,_initterm,_encoded_null,??3@YAXPAX@Z,_CxxThrowException,memcpy,memmove,free,memcpy_s,memset,__CxxFrameHandler3,??1exception@std@@UAE@XZ,??0exception@std@@QAE@ABQBD@Z,?what@exception@std@@UBEPBDXZ,wcslen,wcscat_s,_wsplitpath_s,??_V@YAXPAX@Z,_malloc_crt
Resources
| Type | ID/name | Lang | RVA | Size |
|---|---|---|---|---|
REGISTRY |
101 |
1033 | 0x0002a19c | 680 |
TYPELIB |
1 |
1033 | 0x0002a444 | 55756 |
6 |
7 |
1033 | 0x00037e10 | 48 |
16 |
1 |
1033 | 0x00037e40 | 976 |
24 |
2 |
1033 | 0x00038210 | 346 |
GUID hits
c30b52f5-2cb5-4760-af0a-3a344a7eb5dctext-upperat file offset0x000283ee:65 72 76 65 72 20 43 6c 61 73 73 27 0d 0a 09 7b 0d 0a 09 09 43 4c 53 49 44 20 3d 20 73 20 27 7b 43 33 30 42 35 32 46 35 2d 32 43 42 35 2d 34 37 36 30 2d 41 46 30 41 2d 33 41 33 34 34 41 37 45c30b52f5-2cb5-4760-af0a-3a344a7eb5dctext-upperat file offset0x00028461:65 72 76 65 72 20 43 6c 61 73 73 27 0d 0a 09 7b 0d 0a 09 09 43 4c 53 49 44 20 3d 20 73 20 27 7b 43 33 30 42 35 32 46 35 2d 32 43 42 35 2d 34 37 36 30 2d 41 46 30 41 2d 33 41 33 34 34 41 37 45c30b52f5-2cb5-4760-af0a-3a344a7eb5dctext-upperat file offset0x000284db:65 6d 6f 76 65 20 43 4c 53 49 44 0d 0a 09 7b 0d 0a 09 09 46 6f 72 63 65 52 65 6d 6f 76 65 20 7b 43 33 30 42 35 32 46 35 2d 32 43 42 35 2d 34 37 36 30 2d 41 46 30 41 2d 33 41 33 34 34 41 37 45c30b52f5-2cb5-4760-af0a-3a344a7eb5dcguid-bytes-leat file offset0x0001b640:b6 99 82 84 61 dd 0d 4a a3 04 39 47 a5 64 b8 9c c4 6f 0a c7 ef 09 31 4f 88 74 a0 49 fe e8 7a 95 f5 52 0b c3 b5 2c 60 47 af 0a 3a 34 4a 7e b5 dc 02 00 00 80 2c b5 01 10 28 b5 01 10 24 b5 01 10c30b52f5-2cb5-4760-af0a-3a344a7eb5dcguid-bytes-leat file offset0x0002b238:d0 20 00 00 58 02 00 00 c4 6f 0a c7 ef 09 31 4f 88 74 a0 49 fe e8 7a 95 34 21 00 00 ff ff ff ff f5 52 0b c3 b5 2c 60 47 af 0a 3a 34 4a 7e b5 dc 98 21 00 00 ff ff ff ff f4 01 00 00 01 00 00 00
Interesting strings
(preboundReferenceHandleW.?AUILMXProxyServer2@@.?AUILMXProxyServer3@@.?AUILMXProxyServer4@@.?AUILMXProxyServer5@@.?AUILMXProxyServer@@.?AV?$CComAggObject@VCLMXProxyServer@@@ATL@@.?AV?$CComCoClass@VCLMXProxyServer@@$1?CLSID_LMXProxyServer@@3U_GUID@@B@ATL@@.?AV?$CComContainedObject@VCLMXProxyServer@@@ATL@@.?AV?$CComEnum@UIEnumConnectionPoints@@$1?_GUID_b196b285_bab4_101a_b69c_00aa00341d07@@3U__s_GUID@@BPAUIConnectionPoint@@V?$_CopyInterface@UIConnectionPoint@@@ATL@@VCComSingleThreadModel@6@@ATL@@.?AV?$CComEnumImpl@UIEnumConnectionPoints@@$1?_GUID_b196b285_bab4_101a_b69c_00aa00341d07@@3U__s_GUID@@BPAUIConnectionPoint@@V?$_CopyInterface@UIConnectionPoint@@@ATL@@@ATL@@.?AV?$CComObject@V?$CComEnum@UIEnumConnectionPoints@@$1?_GUID_b196b285_bab4_101a_b69c_00aa00341d07@@3U__s_GUID@@BPAUIConnectionPoint@@V?$_CopyInterface@UIConnectionPoint@@@ATL@@VCComSingleThreadModel@6@@ATL@@@ATL@@.?AV?$CComObject@VCLMXProxyServer@@@ATL@@.?AV?$CProxy_ILMXProxyServerEvents2@VCLMXProxyServer@@@@.?AV?$CProxy_ILMXProxyServerEvents@VCLMXProxyServer@@@@.?AV?$IConnectionPointContainerImpl@VCLMXProxyServer@@@ATL@@.?AV?$IConnectionPointImpl@VCLMXProxyServer@@$1?DIID__ILMXProxyServerEvents2@@3U_GUID@@BVCComDynamicUnkArray@ATL@@@ATL@@.?AV?$IConnectionPointImpl@VCLMXProxyServer@@$1?DIID__ILMXProxyServerEvents@@3U_GUID@@BVCComDynamicUnkArray@ATL@@@ATL@@.?AV?$IDispatchImpl@UILMXProxyServer5@@$1?IID_ILMXProxyServer5@@3U_GUID@@B$1?LIBID_LMXPROXYLib@@3U3@B$00$0A@VCComTypeInfoHolder@ATL@@@ATL@@.?AV?$_ICPLocator@$1?DIID__ILMXProxyServerEvents2@@3U_GUID@@B@ATL@@.?AV?$_ICPLocator@$1?DIID__ILMXProxyServerEvents@@3U_GUID@@B@ATL@@.?AVCLMXProxyServer@@.\WriteWWW0()MxSourceRequestingNmxWWW0=vMX_E_LmxInvalidCommandWW5MxSecurityVerifiedWriteW8APrebindReferenceExWW8UtILMXProxyServerW:MX_E_SecuredWriteWWWAny User cam write to these attributes. No security checking is done.WaBMXSTATUS_PROXYWWCLMXProxyServer::Activate - Query for IMxScanOnDemand failedCLMXProxyServer::Activate - Server HandleCLMXProxyServer::Activate - returning HRESULTCLMXProxyServer::AddBufferedItem - Server HandleCLMXProxyServer::AddBufferedItem - Server Handle:CLMXProxyServer::AddBufferedItem - Valid License:CLMXProxyServer::AddItem - Server Handle:CLMXProxyServer::AddItem - Valid License:CLMXProxyServer::AddItem - returning HRESULTCLMXProxyServer::AddItem2 - Server Handle:CLMXProxyServer::AddItem2 - Valid License:CLMXProxyServer::AddItem2 - returning HRESULTCLMXProxyServer::Advise - Server HandleCLMXProxyServer::Advise - returning HRESULTCLMXProxyServer::AdviseSupervisory - Server HandleCLMXProxyServer::AdviseSupervisory - returning HRESULTCLMXProxyServer::ArchestrAUserToId - Server Handle:CLMXProxyServer::ArchestrAUserToId - returning HRESULT E_INVALIDARG for invalid Server HandleCLMXProxyServer::ArchestrAUserToId - returning HRESULT S_OK, UserIdCLMXProxyServer::AuthenticateUser - Server Handle:CLMXProxyServer::AuthenticateUser - returning HRESULT E_INVALIDARGCLMXProxyServer::AuthenticateUser - returning HRESULT S_OK UserIdCLMXProxyServer::InitializeDefaultLocale set toCLMXProxyServer::Register - Client name NULL - returning E_POINTER HRESULTCLMXProxyServer::Register - ClientNameCLMXProxyServer::Register - Unregistering existing Client appCLMXProxyServer::Register - returning HRESULTCLMXProxyServer::RemoveItem - Server HandleCLMXProxyServer::RemoveItem - returning HRESULTCLMXProxyServer::SetBufferedUpdateInterval - hLMXServerCLMXProxyServer::SetBufferedUpdateInterval - returning E_INVALIDARGCLMXProxyServer::Suspend - Query for IMxScanOnDemand failedCLMXProxyServer::Suspend - Server HandleCLMXProxyServer::Suspend - returning HRESULTCLMXProxyServer::UnAdvise - Server HandleCLMXProxyServer::UnAdvise - returning HRESULTCLMXProxyServer::Unregister - Server HandleCLMXProxyServer::Unregister - returning HRESULTCLMXProxyServer::VerifyAdvisedItem - returning E_INVALIDARGCLMXProxyServer::VerifyItemValid - hItemCLMXProxyServer::VerifyItemValid - hLMXServerCLMXProxyServer::Write - Server HandleCLMXProxyServer::Write - returning HRESULTCLMXProxyServer::WriteSecured - Server HandleCLMXProxyServer::WriteVerified - returning HRESULTCLSID = s '{C30B52F5-2CB5-4760-AF0A-3A344A7EB5DC}'CProxy_ILMXProxyServerEvents2::Fire_OnBufferedDataChange firing event - Server HandleCProxy_ILMXProxyServerEvents::Fire_OnDataChange firing event - Server HandleCProxy_ILMXProxyServerEvents::Fire_OnWriteComplete firing event - Server HandleCProxy_ILMXProxyServerEvents::Fire_OperationComplete firing event - Server HandleCurVer = s 'LMXProxy.LMXProxyServer.1'Failed to locate MiniDumpWriteDump to generate minidump. Maybe old version of dbghelp.dll is being used.FindResourceWFire_OnWriteComplete - threw an unknown exceptionForceRemove {C30B52F5-2CB5-4760-AF0A-3A344A7EB5DC} = s 'LMXProxyServer Class'HILMXPROXYLibWILMXProxyServer InterfaceWILMXProxyServer2 InterfaceILMXProxyServer2@ILMXProxyServer3ILMXProxyServer3 InterfaceILMXProxyServer4ILMXProxyServer4 InterfaceILMXProxyServer5 InterfaceILMXProxyServer5lISecurityToken InterfaceWWIUserAuthenticator InterfaceWWIUserAuthenticator2 InterfaceWIUserAuthenticator3 InterfaceWIUserAuthenticator4 InterfaceWIUserAuthenticator5 InterfaceWIUserAuthenticator6 InterfaceWIUserAuthenticator7 InterfaceW!InterfaceLMXProxyLMXProxy 1.0 Type LibraryWLMXProxy ModuleLMXProxy.DLLLMXProxy.LMXProxyServer = s 'LMXProxyServer Class'LMXProxy.LMXProxyServer.1 = s 'LMXProxyServer Class'LMXProxyServer ClassWWLMXProxyServer.cppLMXProxyServerWWLmxProxyLmxProxy_v0045MX_E_LmxVersionMismatchWMX_E_NotWriteableWWWMX_E_VerifiedWriteWWMX_E_WriteAccessDeniedWWMiniDumpWriteDumpMultiple Threads calling CLMXProxyServer::Register() - not allowed.MxSecuritySecuredWriteWWMxSourceRequestingLmxWWWMxSourceRespondingLmxWWWMxSourceRespondingNmxWWWOnWriteCompleteW4!Operators write to these attributes during normal day-to-day operations (Setpoint, Command, etc.)WsOperators write to these attributes for normal interaction with a highly secured object. Forces re-authentication.WWWOperators write to these attributes for normal interaction with a very highly secured object, This is similar to Secured Write however it also required a second user authentication.WnPrebindReferenceProgID = s 'LMXProxy.LMXProxyServer.1'ProxyServerProxyServerDataChangeRemoteWriteWShutdownMxConsumerWWSupervisoryRegisterPreboundReferencexSuspendReference|UnregisterPreboundReferenceWtUserRegisterPreboundReferenceWWWVersionIndependentProgID = s 'LMXProxy.LMXProxyServer'WriteSecuredWriteSecured2WWW[MX_E_NmxVersionMismatchW_ILMXProxyServerEvents InterfaceWW!_ILMXProxyServerEvents2 InterfaceW_ILMXProxyServerEvents2W4!a_ILMXProxyServerEventsWWd:\bldsrc\6\s\src\lmxproxy\mxcallback.hhLMXServerHandlelMX_E_NmxInvalidCommandWWlmxproxy is loaded by internal Process and mxaccess licensing is not requiredlmxproxy loaded by the Process ProcessName :%snMxCategoryPendingWWWd- `nMxQualifiedStructWWW``
phLMXServerHandleWWWpreboundRefHandleWWWvWrite2WW