Update: After changing my direct accesses of the virtual address to the HAL
READ_REGISTER_*/WRITE_REGISTER_*
functions everything works like a charm. I had done this before, but that
was previous to where I had correctly mapped the
physical address to a virtual.
Randy
> *(ULONG*)virtAddr = oneBit;
>
> // test read
> if ( *(ULONG*)virtAddr != oneBit ) {
> RtlInitUnicodeString(&uniErrorString, L"0x0000000000000005"); // error
> condition
> goto testDONE;
> }
>
> // test write, this should fail silently because of write-once bit
> *(ULONGLONG*)virtAddr = zeroBit;
> memVal = *(ULONGLONG*)virtAddr;
>
> uniErrorString.Length = 0;
> uniErrorString.MaximumLength = 70;
> uniErrorString.Buffer = &addrBuffer[0];
> // convert value to string
> if ( STATUS_SUCCESS !=
> RtlIntegerToUnicodeString(memVal,10,&uniErrorString) ) {
> RtlInitUnicodeString(&uniErrorString, L"0x0000000000000003"); // error
> condition
> }
>
> testDONE:
> // do error things...
>
>