The following is an excerpt from the AFSDK Reference AFDataReference.GetValues Method page, with some additional formatting for emphasis.

- numberOfValues
- Type: System..::..Int32

The number of values desired. - * If 0, then all recorded values will be returned.
- * If the number of values requested is less than zero, then if supported, the Data Reference will return interpolated values across the timeContext.
- * If the number of values requested is greater than zero, than the method will behave like the PI SDK's PIData.PlotValues method. This method is designed to return a set of values over a time period that will produce the most accurate plot while minimizing the amount of data returned. The number of intervals specifies the number of pixels that need to be represented in the time period. For each interval, the data available is examined and significant values are returned. Each interval can produce up to 5 values if they are unique, the value at the beginning of the interval, the value at the end of the interval, the highest value, the lowest value and at most one exceptional point (digital state). If no data is available in an interval, then no value is generated. As a result, the method may return more or fewer values than the number of values requested, depending on the distribution of recorded values over the time range.
- There's a great deal of explanation on how the GetValues Method should act if numberOfValues is positive. If it's 0, it's self-explanatory. There isn't a lot of detail regarding negative values though. I assume that if the value is negative, it indicates the number of evenly spaced interpolated values that should be returned. Can somebody at OSIsoft please verify this for me?
- Thanks,
- Zev

Interpolation values behavior is as you state. Note that to get hourly intervals over a 24 hour day (Midnight to Midnight), you would pass -25 as the number.