# ReadFromPhysicalMemoryEx

int ReadFromPhysicalMemoryEx (unsigned int physicalAddress, void *destinationBuffer, unsigned int numberOfBytes, int bytesAtATime);

## Purpose

Copies the contents of a region of physical memory into the specified buffer.

The function can copy the data in units of 1, 2, or 4 bytes at a time. ReadFromPhysicalMemoryEx does not check whether the memory actually exists. If the memory does not exist, ReadFromPhysicalMemoryEx returns the success value but does not read data.

| Note ReadFromPhysicalMemoryEx requires the LabWindows/CVI low-level support driver. LabWindows/CVI loads the driver at startup if it is on disk. You can check whether LabWindows/CVI loaded the driver at startup by calling CVILowLevelSupportDriverLoaded.

## Parameters

Input
Name | Type | Description
physicalAddress | unsigned integer | Physical address to read from. No restrictions exist on the address, which can be above or below 1 MB.
destinationBuffer | void pointer | Buffer into which to copy the physical memory.
numberOfBytes | unsigned integer | Number of bytes to copy from physical memory. numberOfBytes must be a multiple of bytesAtATime.
bytesAtATime | integer | Unit size in which to copy the data. bytesAtATime can be 1, 2, or 4 bytes.

## Return Value

Name | Type | Description
status | integer | Indicates whether the function succeeded.
Code | Description
1 | Success.
0 | Operating system reported failure, low-level support driver not loaded, numberOfBytes is not a multiple of bytesAtATime, or invalid value for bytesAtATime.