Remarks

During this process, the canonical bytes will be written to the
specified writeCallback. Every node written by the writer
will be canonicalized. Thus, canonicalization and generation can be done
in one pass over regardless of what APIs are used to write
the XML.

WsEndWriterCanonicalization must be called at the same depth at
which WsStartWriterCanonicalization was called. Other writer APIs
will return an error if it would move to a depth lower than where
WsStartWriterCanonicalization was called.