I am trying to access/read information from an SMBIOS table. The documentation indicates that the info is located within 000F0000h - 000FFFFFh.
How do access this memory area to read it?
I am trying to access/read information from an SMBIOS table. The documentation indicates that the info is located within 000F0000h - 000FFFFFh.
How do access this memory area to read it?
Depending on your OS, you might not be able to.
WinXP and some other dozes have the "feature" of cutting off your ability to directly access your own hardware and memory. If you are able to access memory, simple cast the byte address to a pointer. (char* is better because it addresses one byte)
I need to run the program under both win95 and w2k.
To cast the pointer - something like this?
char ptr;
ptr=000f0000h;
or am I WAY off base here?
char* ptr = (char*) 0x000f000;
ought to do it. Make sure you include the cast, as it won't implicitly cast from an integer to a pointer.
Also, don't write to it. Don't even try.
When looking at the pointer in Debug mode, it gives me a "Cannot read from location 0x001B:0x000F0000" error. If I try to look at the raw memory it points me off somewhere else.
int main(int argc, char *argv[]) {
char* ptr=(char*)0x000f0000;
return 0;
}
I step through to the return 0, so the pointer has been assigned the new address, but that address is inaccessible. I am programing under Win2k.
I'm pretty sure 2k has that flat space BS, which means you can't get at your memory or hardware. Massivesoft considers this an improvement.