Jump to content
AIDA64 Discussion Forum

RiceGnat

Members
  • Content Count

    4
  • Joined

  • Last visited

Everything posted by RiceGnat

  1. I'm trying to read the shared memory and I'm getting an AccessViolationException when trying to open the file. I've tried running both AIDA64 and the development environment as administrator in all combinations. I'm currently using the TRIAL version on v5.99.4900. Is there a restriction for this function on the trial version? I'm looking to get the program specifically for this capability so I'd like to know whether or not it works before purchasing.
  2. RiceGnat

    Shared memory access denied

    Ah, that's a mighty shame. Well, thank you for helping out anyway! Will figure something out to work with that.
  3. RiceGnat

    Shared memory access denied

    Upon revisiting the issue it seems that the issue was due to the buffer size I was using. The "AccessViolationException" is probably from trying to read past the end of the file. I guess that changes the question to: How do I get the length of the string? Alternatively, what's the max buffer size? The help doc said 10KB, but that seems to be what's causing the exception. A smaller value (3K) works and I can read the XML string, but how do I know for sure I've gotten the entire file? internal const string SHARED_MEM_NAME = "AIDA64_SensorValues"; internal const int FILE_MAP_READ = 0x0004; internal const int BUFFER_SIZE = 3000; public static SensorData GetData() { // Read sensor values from shared memory StringBuilder sharedMemFile = new StringBuilder(SHARED_MEM_NAME); IntPtr handle = Kernel32.OpenFileMapping(FILE_MAP_READ, false, sharedMemFile); IntPtr mem = Kernel32.MapViewOfFile(handle, FILE_MAP_READ, 0, 0, 0); if (mem == IntPtr.Zero) { throw new Exception("Unable to read shared memory."); } string xml = Marshal.PtrToStringAnsi(mem, BUFFER_SIZE); Console.WriteLine(xml); Kernel32.UnmapViewOfFile(handle); Kernel32.CloseHandle(handle); return null; }
  4. RiceGnat

    Shared memory access denied

    Yeah, I've tried it with Visual Studio running as administrator, as well as running the compiled executable as administrator. No luck.
×