# WinBufAllocEx()

Allocates a Windows global memory buffer which can be used with the scan methods, and returns a memory handle for it.

Most devices return data in a 16-bit format. For these devices, the buffer can be created using WinBufAllocEx(). Some devices return data in higher resolution formats, or the resolution of the data can vary depending on various options used to collect the data. In these cases, determine if the buffer needs to be created using WinBufAlloc32Ex() or WinBufAlloc64Ex(). See hardware-specific information to determine the type of buffer needed. If not specifically mentioned, use WinBufAllocEx().

Some devices support acquisition of scaled data. In these cases, create the buffer with ScaledWinBufAllocEx(). See hardware-specific information to determine if the device supports scaled data.

Member of the MccService class.

## Function Prototype

VB .NET

Public Function WinBufAllocEx(ByVal numPoints As Integer) As IntPtr

C# .NET

public IntPtr WinBufAllocEx(int numPoints)

## Parameters

numPoints

The size of buffer to allocate. Specifies how many data points (16-bit integers, NOT bytes) can be stored in the buffer.

## Returns

- 0, if the buffer could not be allocated, or a non-zero integer handle to the buffer.

## Notes

- Unlike most other methods in the library, this method does not return an ErrorInfo object. It returns a Windows global memory handle, which can then be passed to the scan methods in the library. If an error occurs, the handle will come back as 0 to indicate that the buffer was not allocated.
- This method is preferred over the deprecated method WinBufAlloc(). Only use WinBufAlloc() in 32-bit legacy applications that call deprecated methods.