Files
histsdk/docs/reverse-engineering/wcf-start-query-remote-latest.json
T
dohertj2 c95824a65d Initial commit: managed .NET 10 AVEVA Historian SDK + reverse-engineering toolkit
Full read-only SDK (src/AVEVA.Historian.Client) implementing the CLAUDE.md required
surface against AVEVA Historian's binary WCF protocol — no native AVEVA runtime
dependency. All operations live-verified against a local Historian:

- ProbeAsync, ReadRawAsync, ReadAggregateAsync, ReadAtTimeAsync, ReadEventsAsync
- BrowseTagNamesAsync, GetTagMetadataAsync (17 native data-type codes mapped)
- GetConnectionStatusAsync, GetStoreForwardStatusAsync, GetSystemParameterAsync
- 108/108 unit + integration tests pass

Includes the reverse-engineering toolkit (tools/AVEVA.Historian.ReverseEngineering)
used to decode the protocol: WCF probes, IL inspection via dnlib, and IL-rewrite
instrumentation (instrument-wcf-{write,read}message etc.) plus the .NET Framework
trace harness (tools/AVEVA.Historian.NativeTraceHarness) for parity testing.

Sanitized handoff evidence under docs/reverse-engineering/. Native AVEVA binaries
(current/, aveva-install-x64/, aveva-install-x86/) are gitignored — fetch separately
from the AVEVA installer.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 06:31:48 -04:00

531 lines
14 KiB
JSON

[
{
"Option": "",
"ColumnSelectorFlags": 142395346223871,
"RequestByteCount": 267,
"RequestSha256": "817355b81bec51b8452669af7f1828de9d8e36f41352c5c45ed889f9b89e8b70",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 2,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "2771911259312f141b41fe6cb6923e10ae2a6ca08ee5b213627d2620a674e565",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 0,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "cc09fa0d9326b3a9b82470b1e4bb998fccaadc7bcfdf10097e0cc41781298030",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 1,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "2c513443dfed0784d7b8c2b0c150a0f24964b21675e3dc7759f81ba91f66b062",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 2,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "a090db2d30d28aa479dcb8852cc1c1558a09aa95eae99f40a3aaef442606f71f",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 3,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "02df33e2bdd1756adaadea04722fb7b736e4b7471ed667b887824212f06ac09a",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 4,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "5a1442caa2bbdbede319d5dd6aec57f9c9602e93676424b0cb7812cba0e21d78",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 5,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "74d03523892ef134c4ee2912301cca8541a4fe91fad4177078ee0468a5b0adf9",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 6,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "9fee1ad9d404a5d3b53cd57d229c68eb9d53ee71b8bf8e69678aa59c1d911bcf",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 7,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "3cf4c905c2098e492f8914ffd4f0baaa3f5c458a896f809e97051caf8f8c9ea0",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 8,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "d0efe9aa5b15624f58f3104148dc9210ca599257317e1372402fdcc6a9189603",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 9,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "8b536c73f0d36ab07d18272bd4d09eb519b92829c6fbcb4ea3770d7251dff4f3",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 10,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "425989a2bf9e2a3d46327d82edaec23d872280b991fe3c394ec4ef74083738fc",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 11,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "73e852c0ac3427a43b905f3c7bf895cfa937750cb82b63ab353bf0497ef1d1a5",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 12,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "eb1fb4cf7baa04e095b313c94cfcb1620b06c80e7ec685064d132dad20ff6fb3",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 13,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 262143,
"RequestByteCount": 267,
"RequestSha256": "9f49c7ea7f2a9c5d457a9546065fa1593d519696ebbe3b127c3f9949eef6f8bc",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 14,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "NoOption",
"ColumnSelectorFlags": 65535,
"RequestByteCount": 263,
"RequestSha256": "3cfbfccf210ce1dd46c191e543b0999fb892b04f75c90cf53245d528c71c117c",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 2,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 65535,
"RequestByteCount": 267,
"RequestSha256": "229b589fa8ecd97db2a6536088f37e218923dd4d89ba5750e96f4ca9902a51a1",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 2,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "NoOption",
"ColumnSelectorFlags": 18446744073709551615,
"RequestByteCount": 263,
"RequestSha256": "1bc580abc7e81c41ec81e5902e768350f11b13ab928a0b6fae62d629e02f56ef",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 2,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 18446744073709551615,
"RequestByteCount": 267,
"RequestSha256": "f28630155154f2fb627b4f1c21aad35b586f1194e1b106dfe7f19aff1dc5e8af",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 2,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 18446744073709551615,
"RequestByteCount": 343,
"RequestSha256": "f0a5ec4669a4f406e429747f0bba46fcdf4a9d6409affa5373bb787896325006",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 2,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
},
{
"Option": "",
"ColumnSelectorFlags": 18446744073709551615,
"RequestByteCount": 403,
"RequestSha256": "3b281f526bee334429a5e621c24ee59c0afaee74b9245c5f51ea6cd2842d3374",
"ClientHandle": 0,
"IsOriginalAllowedReturnCode": 0,
"IsOriginalAllowed": true,
"QueryType": 2,
"OpenSuccess": true,
"Success": false,
"QueryHandle": 0,
"ResponseSize": 0,
"ResponseByteCount": null,
"LegacyReturnCode": 238,
"LegacyQueryHandle": 0,
"LegacyResponseSize": 0,
"LegacyResponseByteCount": null,
"LegacyResponseSha256": null,
"LegacyError": null,
"ErrorSize": 0,
"NativeErrorCode": null,
"Error": null
}
]