Tech Support > Microsoft Windows > Drivers > Re: What is the difference between "WRITE_REGISTER_BUFFER_UCHAR" and "WRITE_REGISTER_UCHAR" ??
Re: What is the difference between "WRITE_REGISTER_BUFFER_UCHAR" and "WRITE_REGISTER_UCHAR" ??
Posted by Volker Moebius on July 2nd, 2003


WRITE_REGISTER_BUFFER_UCHAR writes a block of bytes and *increments destination address while
storing data*.


That's why only '0' is written to correct destination register possibly.


There should be no difference between NT4 and W2k with respect to the behaviour of
WRITE_REGISTER_BUFFER_UCHAR.

Your explanations suggest that your card uses memory space. Standard serial ports - in contrast -
are implemented in IO space. For IO space accesses XXX_PORT_YYY functions are appropriate.
WRITE_PORT_BUFFER_UCHAR doesn't increment port address while storing data so entire chunk is written
into the same destinaton register. Maybe that's your trouble.

So far I haven't dealed with serial port implementation under NT. From there I can't comprehend your
source snippets completely in particular as I can't see any direct references to WRITE_REGISTER_YYY.


Best Regards
Volker



Posted by Volker Moebius on July 2nd, 2003


Sorry - I meant standard PC - X86 architecture.


Regards
Volker



Posted by Mark Roddy on July 2nd, 2003


On Wed, 2 Jul 2003 09:40:09 +0200, "Volker Moebius"
<volker.moebius@baslerweb.com> wrote:

Well I believed that to be true as well, until rather recently when I
was researching another HAL PIO related issue and learned, to my
horror, that on some platforms (none thankfully currently supported,)
WRITE_PORT_BUFFER_UCHAR and friends act just like their REGISTER
versions: incrementing both addresses with each transfer.





=====================
Mark Roddy
Windows XP/2000/NT Consulting, Microsoft DDK MVP
Hollis Technology Solutions 603-321-1032
www.hollistech.com
markr@hollistech.com
For Windows Device Driver Training: see www.azius.com