RIO_BUFFERID

The RIO_BUFFERID typedef specifies a registered buffer descriptor used with the Winsock registered I/O extensions.

typedef struct RIO_BUFFERID_t* RIO_BUFFERID, **PRIO_BUFFERID;

RIO_BUFFERID

A data type that specifies a registered buffer descriptor used with send and receive requests.

Remarks

The Winsock registered I/O extensions operate primarily on registered buffers using RIO_BUFFERID objects. An application obtains a RIO_BUFFERID for an existing buffer using the RIORegisterBuffer function. An application can release a registration using the RIODeregisterBuffer function.

When an existing buffer is registered as a RIO_BUFFERID object using the RIORegisterBuffer function, certain internal resources are allocated from physical memory, and the existing application buffer will be locked into physical memory. The RIODeregisterBuffer function is called to deregister the buffer, free these internal resources, and allow the buffer to be unlocked and released from physical memory.

Repeated registration and deregistration of application buffers using the Winsock registered I/O extensions may cause significant performance degradation. The following buffer management approaches should be considered when designing an application using the Winsock registered I/O extensions to minimize repeated registration and deregistration of application buffers:

  • • Maximize the reuse of buffers.
  • • Maintain a limited pool of unused registered buffers for use by the application.
  • • Maintain a limited pool of registered buffers and perform buffer copies between these registered buffers and other unregistered buffers.

The RIO_BUFFERID typedef is defined in the Mswsockdef.h header file which is automatically included in the Mswsock.h header file. The Mswsockdef.h header file should never be used directly.

Requirements

Requirement Value
Minimum supported client
Windows 8 [desktop apps only]
Minimum supported server
Windows Server 2012 [desktop apps only]
Header
Mswsockdef.h (include Mswsock.h)

See also

RIO_BUF

RIODeregisterBuffer

RIOReceive

RIOReceiveEx

RIORegisterBuffer

RIOSend

RIOSendEx