LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Read From Physical Memory

  Info On My Project    

   I am working on LabWindows CVI 12.0 for development . This project is a real time application for hardware, which is having Phar Lap ETS as RTOS...     My requirement is to verify the memory healthiness of the Target System...  

 

I have tried ReadFromPhysicalMemory api . But this api is now outdated in Labwindows newer versions.

 

So Is there any alternative option for reading from RAM??

 

Please help for solving this issue..

 

 

 

 

0 Kudos
Message 1 of 6
(4,365 Views)

Hello vaishakhak,

 

The following document details the obsoletion to which you are referring: http://digital.ni.com/public.nsf/allkb/A07451671E7263598625792800677970?OpenDocument.  From the patch onward, LabWindows/CVI has disabled the physical memory functions for security reasons.  On unpatched versions of LabWindows/CVI preceding December 2011, the feature is enabled.  

 

To communicate with out of process memory, you will need to implement a low-level driver which communicates with the memory.  Otherwise, you can make use of the WinAPI functions ReadProcessMemory and WriteProcessMemory.

 

For a discussion on reading physical memory which relates to your question, please see the following Stack Overflow thread: http://stackoverflow.com/questions/8403610/how-do-you-read-directly-from-physical-memory/ .  

 

I hope the previous information helps.

 

Thanks,

Daniel Dorroh
National Instruments
0 Kudos
Message 2 of 6
(4,209 Views)

Hello D-Cubed and all CVI Gurus,

 

do I actually need to use the function ReadFromPhysicalMemory?

Or is it possible and even better to cover the same functionality with DAQmx functioncalls?

 

0 Kudos
Message 3 of 6
(3,025 Views)

They are pretty much completely unrelated. Physical memory is the actual memory in your computer before it is virtualized through the MMU. It can be used to read memory mapped PCI device registers.

However unless you use some low level register based DDK for certain specific NI cards, there is no documentation about the register layout for NI DAQ cards.So trying to access NI Data Acquisition cards with ReadFromPhysicalMemory() is almost certainly not what you could nor want to do.

 

NI-DAQmx is the API to access NI data acquisition devices. For built in devices it uses a set of NI specific kernel drivers which "knows" how Windows has mapped the PCI cards into its internal memory and reads/writes the according physical memory address. In modern Windows systems only a kernel driver has the right to access such memory locations.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 4 of 6
(3,014 Views)

I have a module realized in c from the year 1998, which also calls ReadFromPhysicalMemory.

It is currently running with CVI 7.1 on a WinXP. And a NI system consisting of following HW:

System with CVI7.1:        (ReadFromPhysicalMemory is used)

- Inside PC: NI PXI-PCI 8330

- Chassis: NI PXI-1036

- NI PXI-8331 MXI-4

- NI PXI-GPIB

- NI PXI-6508 Digital I/O

- Pickering

- Pickering

- NI PXI-6527 Digital I/O

 

My challange is to upgrade the Testsystem and port the module to current circumstances.

System with CVI7.1(WinXP) upgraded to CVI2017(Win10):              (ReadFromPhysicalMemory do not know if I have to use)

- Inside PC: NI PXI-PCIe8361

- Chassis: NI PXI-1036

- NI PXI-8360 MXI Express

- NI PXI-GPIB

- NI PXI-6508 Digital I/O

- Pickering

- Pickering

- NI PXI-6527 Digital I/O

 

I honestly do not know why it was used ReadFromPhysicalMemory and I also do not have a chance to ask the creator of this module from 1998.

 

Do you know any further advices for me?

0 Kudos
Message 5 of 6
(3,006 Views)

Well considering that you have all PXI devices, most of them from NI I would expect that installation of NI-MXI, NI-DAQmx and NI-VISA be enough to access those cards. The Pickering cards should have a driver too, and if there isn't one you would most likely use NI-VISA register access APIs to communicate to it instead of directly attempting to read the physical memory address.

So without knowing for which actual devices this function is used we can't really give you any more suggestions as to what you should use to replace that functionality than what I wrote above.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 6 of 6
(2,989 Views)