Action mapping was designed with buffered data in mind and will most often be used in that manner. The only difference between retrieving data from an action-mapped device and a device with no mapping is where you get it. Without action mapping, you would look to the dwOfs member of the DIDEVICEOBJECTDATA structure to determine which device object reported a change. However, with action mapping, you look to the uAppData member. Data is found in the dwData member.
For more detailed information about retrieving action-mapped data, see Retrieving Action Data.