diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.MTConnect/MTConnectStreamsParser.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.MTConnect/MTConnectStreamsParser.cs
index a5409aba..b0d6bdff 100644
--- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.MTConnect/MTConnectStreamsParser.cs
+++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.MTConnect/MTConnectStreamsParser.cs
@@ -241,7 +241,16 @@ internal static class MTConnectStreamsParser
///
/// Views the (already trimmed) bytes as a stream without copying them where the memory is
/// array-backed — which it always is on the /sample path, whose framer hands over the
- /// part's own byte[].
+ /// part's own byte[]. That branch aliases the caller's array; only the
+ /// non-array-backed fallback copies (via ToArray).
+ ///
+ /// Ownership, so a caller can reason about the aliased buffer: nothing on this path pools
+ /// or rents it (the framer allocates each byte[] fresh), and parsing is fully
+ /// synchronous, so the buffer need only stay valid and unmutated for the duration of the
+ /// Parse call. The returned holds no reference
+ /// into it — materialises its own strings — so the caller may
+ /// reuse or discard the buffer as soon as Parse returns.
+ ///
///
private static MemoryStream AsStream(ReadOnlyMemory xml) =>
MemoryMarshal.TryGetArray(xml, out ArraySegment segment) && segment.Array is not null