情况进行具体使用。
RIOAcceptEx
function RIOAcceptEx(RIOHandle: RIO_HANDLE; AcceptID: PRIO_BUF;
AcceptIDCount: ULONG; LocalAddressLength: ULONG; RemoteAddressLength: ULONG;
RequestContext: PVOID; Flags: DWORD): BOOL; stdcall;
RIOAcceptEx 函数将一个已连接的套接字绑定到 RIO 请求队列中的新请求,并将请求 ID 返回给调用者。此函数可用于接收基于流的套接字连接。
RIOBind
function RIOBind(Socket: TSocket; RioHandle: RIO_HANDLE;
BindId: PRIO_BUF; BindCount: DWORD; Context: DWORD): BOOL; stdcall;
RIOBind 函数将一个已连接的套接字绑定到 RIO 请求队列中的新请求,该请求使用指定的缓冲区 ID。
RIOCloseCompletionQueue
function RIOCloseCompletionQueue(RIOHandle: RIO_HANDLE): BOOL; stdcall;
RIOCloseCompletionQueue 函数关闭指定的 RIO 完成队列句柄,并释放与之相关联的资源。
RIOCloseRequestQueue
DelphiCopy codefunction RIOCloseRequestQueue(RIOHandle: RIO_HANDLE): BOOL; stdcall;
RIOCloseRequestQueue 函数关闭指定的 RIO 请求队列句柄,并释放与之相关联的资源。
RIOCreate
function RIOCreate(const SocketQueue: TSocket; MaxOutstandingReceive: ULONG;
MaxOutstandingSend: ULONG; MaxReceiveDataBuffers: ULONG;
MaxReceiveBufferData: ULONG; MaxSendDataBuffers: ULONG;
MaxSendBufferData: ULONG; RequestContext: PVOID;
Result: PRIO_RESULT): RIO_HANDLE; stdcall;
RIOCreate 函数创建一个 RIO 请求队列,并返回一个 RIO 句柄以供使用。
RIOCreateCompletionQueue
function RIOCreateCompletionQueue(Entries: DWORD; NotificationCompletion: PRIO_NOTIFICATION_COMPLETION): RIO_HANDLE; stdcall;
RIOCreateCompletionQueue 函数创建一个 RIO 完成队列,并返回一个 RIO 句柄以供使用。
RIOCreateRequestQueue
function RIOCreateRequestQueue(const Socket: TSocket; MaxOutstandingReceive: ULONG;
MaxReceiveDataBuffers: ULONG; MaxOutstandingSend: ULONG;
MaxSendDataBuffers: ULONG; ReceiveDataLength: ULONG;
SendDataLength: ULONG; RequestContext: PVOID;
NotificationCompletion: PRIO_NOTIFICATION_COMPLETION;
RequestQueue: PRIO_HANDLE; RequestQueueId: PRIO_CQ): BOOL; stdcall;
RIOCreateRequestQueue 函数创建一个 RIO 请求队列,并将其与指定的套接字相关联。
RIODeregisterBuffer
function RIODeregisterBuffer(RIOHandle: RIO_HANDLE; BufferId: RIO_BUFFERID): BOOL; stdcall;
RIODeregisterBuffer 函数取消注册 RIO 缓冲区,并将其从 RIO 对象的缓冲区池中移除。
RIODeregisterBufferList
function RIODeregisterBufferList(RIOHandle: RIO_HANDLE; BufferIds: PRIO_BUFFERID;
BufferIdCount: ULONG): BOOL; stdcall;
RIODeregisterBufferList 函数取消注册一组 RIO 缓冲区,并将其从 RIO 对象的缓冲区池中移除。
RIODisconnectEx
function RIODisconnectEx(RIOHandle: RIO_HANDLE; DisconnectID: PRIO_BUF;
Flags: DWORD; Reserved: DWORD): BOOL; stdcall;
RIODisconnectEx 函数断开一个已连接的套接字连接,并将断开请求 ID 返回给调用者。
RIOGetBufferId
function RIOGetBufferId(Buffer: PVOID): RIO_BUFFERID; stdcall;
RIOGetBufferId 函数返回指定缓冲区的缓冲区 ID。
RIOGetBufferIdEx
function RIOGetBufferIdEx(Buffer: PVOID; Offset: ULONG): RIO_BUFFERID; stdcall;
RIOGetBufferIdEx 函数返回指定缓冲区偏移量处的缓冲区 ID。
RIOGetCompletionStatus
function RIOGetCompletionStatus(RIOHandle: RIO_HANDLE; CQ: PRIO_CQ; Data: PRIORESULT; Flags: DWORD): BOOL; stdcall;
RIOGetCompletionStatus 函数从 RIO 完成队列中获取已完成的 I/O 操作状态和信息。
RIOGetCompletionStatusEx
function RIOGetCompletionStatusEx(RIOHandle: RIO_HANDLE; CQ: PRIO_CQ;
Results: PRIORESULT; ResultsLength: ULONG; BytesTransferred: PULONG;
Flags: DWORD; RequestContext: PVOID): BOOL; stdcall;
RIOGetCompletionStatusEx 函数从 RIO 完成队列中获取已完成的 I/O 操作状态和信息,并将结果保存到指定的缓冲区中。
RIOGetQueuedCompletionStatus
function RIOGetQueuedCompletionStatus(CQ: RIO_CQ; NumResults: PDWORD;
Results: PRIORESULT; Timeout: DWORD): BOOL; stdcall;
RIOGetQueuedCompletionStatus 函数从 RIO 完成队列中获取已完成的 I/O 操作状态和信息。
RIOReceive
function RIOReceive(RIOHandle: RIO_HANDLE; RequestQueue: PRIO_RQ;
Buffer: PVOID; DataBufferLength: ULONG; LocalAddress: PSOCKADDR;
RemoteAddress: PSOCKADDR; ControlBuffer: PVOID;
ControlBufferLength: ULONG; Flags: DWORD; RequestContext: PVOID): BOOL; stdcall;
RIOReceive 函数提交异步接收请求。
RIOReceiveEx
function RIOReceiveEx(RIOHandle: RIO_HANDLE; RequestQueue: PRIO_RQ;
Data: PRIO_BUF; DataBufferCount: ULONG; LocalAddress: PSOCKADDR;
RemoteAddress: PSOCKADDR; Control: PRIO_BUF; ControlBufferCount: ULONG;
Flags: DWORD; RequestContext: PVOID): BOOL; stdcall;
RIOReceiveEx函数提交异步接收请求,该请求将指定的多个数据缓冲区与接收请求相关联。
RIOResizeCompletionQueue
function RIOResizeCompletionQueue(RIOHandle: RIO_HANDLE; CQ: PRIO_CQ;
Entries: DWORD; Reserved: DWORD): BOOL; stdcall;
RIOResizeCompletionQueue 函数更改 RIO 完成队列的大小。
RIOSend
function RIOSend(RIOHandle: RIO_HANDLE; RequestQueue: PRIO_RQ;
Buffer: PVOID; DataBufferLength: ULONG; LocalAddress: PSOCKADDR;
RemoteAddress: PSOCKADDR; ControlBuffer: PVOID;
ControlBufferLength: ULONG; Flags: DWORD; RequestContext: PVOID): BOOL; stdcall;
RIOSend 函数提交异步发送请求。
RIOSendEx
function RIOSendEx(RIOHandle: RIO_HANDLE; RequestQueue: PRIO_RQ;
Data: PRIO_BUF; DataBufferCount: ULONG; LocalAddress: PSOCKADDR;
RemoteAddress: PSOCKADDR; Control: PRIO_BUF; ControlBufferCount: ULONG;
Flags: DWORD; RequestContext: PVOID): BOOL; stdcall;
RIOSendEx 函数提交异步发送请求,该请求将指定的多个数据缓冲区与发送请求相关联。
RIOSendMessages
function RIOSendMessages(RIOHandle: RIO_HANDLE; Messages: PRIO_BUF;
MessageCount: ULONG; Flags: DWORD; RequestContext: PVOID): BOOL; stdcall;
RIOSendMessages 函数提交多个异步发送请求。
RIOSendMessagesEx
function RIOSendMessagesEx(RIOHandle: RIO_HANDLE; Messages: PRIO_BUF;
MessageCount: ULONG; LocalAddress: PSOCKADDR; RemoteAddress: PSOCKADDR;
Control: PRIO_BUF; ControlBufferCount: ULONG; Flags: DWORD;
RequestContext: PVOID): BOOL; stdcall;
RIOSendMessagesEx 函数提交多个异步发送请求,该请求将指定的多个数据缓冲区与发送请求相关联。
RIOSendTo
function RIOSendTo(RIOHandle: RIO_HANDLE; RequestQueue: PRIO_RQ;
Buffer: PVOID; DataBufferLength: ULONG; RemoteAddress: PSOCKADDR;
ControlBuffer: PVOID; ControlBufferLength: ULONG; Flags: DWORD;
RequestContext: PVOID): BOOL; stdcall;
RIOSendTo 函数提交异步发送请求,将数据发送到指定的目标地址。
RIOSendToEx
function RIOSendToEx(RIOHandle: RIO_HANDLE; RequestQueue: PRIO_RQ;
Data: PRIO_BUF; DataBufferCount: ULONG; RemoteAddress: PSOCKADDR;
Control: PRIO_BUF; ControlBufferCount: ULONG; Flags: DWORD;
RequestContext: PVOID): BOOL; stdcall;
RIOSendToEx 函数提交异步发送请求,该请求将指定的多个数据缓冲区与发送请求相关联,并将数据发送到指定的目标地址。
RIOSetCompletionQueueEx
DelphiCopy codefunction RIOSetCompletionQueueEx(RIOHandle: RIO_HANDLE; CQ: PRIO_CQ;
Event: THandle; Reserved: DWORD; NotificationCount: DWORD): BOOL; stdcall;
RIOSetCompletionQueueEx 函数将 RIO 完成队列与指定的 I/O 完成端口相关联,以便通知程序有关已完成 I/O 操作的信息。
RIOSetRequestQueueCallback
function RIOSetRequestQueueCallback(RIOHandle: RIO_HANDLE; RequestQueue: PRIO_RQ;
NotificationCompletion: PRIO_NOTIFICATION_COMPLETION;
RequestContext: PVOID): BOOL; stdcall;
RIOSetRequestQueueCallback 函数为 RIO 请求队列设置回调函数,以便通知程序有关异步操作完成的信息。
RIOStreamReceive
function RIOStreamReceive(RIOHandle: RIO_HANDLE; StreamId: PRIO_BUF;
DataBuffer: PVOID; DataBufferLength: ULONG; Flags: DWORD;
RequestContext: PVOID): BOOL; stdcall;
RIOStreamReceive 函数从指定的 RIO 流中接收数据。
RIOStreamReceiveEx
function RIOStreamReceiveEx(RIOHandle: RIO_HANDLE; StreamId: PRIO_BUF;
Data: PRIO_BUF; DataBufferCount: ULONG; Flags: DWORD;
RequestContext: PVOID): BOOL; stdcall;
RIOStreamReceiveEx 函数从指定的 RIO 流中接收数据,并将其与请求 ID 相关联。
RIOStreamSend
function RIOStreamSend(RIOHandle: RIO_HANDLE; StreamId: PRIO_BUF;
DataBuffer: PVOID; DataBufferLength: ULONG; Flags: DWORD;
RequestContext: PVOID): BOOL; stdcall;
RIOStreamSend 函数将数据发送到指定的 RIO 流。
RIOStreamSendEx
function RIOStreamSendEx(RIOHandle: RIO_HANDLE; StreamId: PRIO_BUF;
Data: PRIO_BUF; DataBufferCount: ULONG; Flags: DWORD;
RequestContext: PVOID): BOOL; stdcall;
RIOStreamSendEx 函数将指定的多个数据缓冲区发送到指定的 RIO 流。
RIOUpdateCompletionQueue
function RIOUpdateCompletionQueue(RIOHandle: RIO_HANDLE; CQ: PRIO_CQ;
NotificationCompletion: PRIO_NOTIFICATION_COMPLETION): BOOL; stdcall;
RIOUpdateCompletionQueue 函数更新 RIO 完成队列的回调函数和相关的通知信息。
typePRIO_EXTENSION_FUNCTION_TABLE = ^RIO_EXTENSION_FUNCTION_TABLE;RIO_EXTENSION_FUNCTION_TABLE = packed recordcbSize: DWORD;RIOReceive: TRIOReceive;RIOReceiveEx: TRIOReceiveEx;RIOSend: TRIOSend;RIOSendEx: TRIOSendEx;RIOSendTo: TRIOSendTo;RIOSendToEx: TRIOSendToEx;RIOCreateRequestQueue: TRIOSendToEx;RIOCreateCompletionQueue: TRIOCreateCompletionQueue;RIOCloseCompletionQueue: TRIOCloseCompletionQueue;RIOResizeCompletionQueue: TRIOResizeCompletionQueue;RIORegisterBuffer: TRIOResizeCompletionQueue;RIODeregisterBuffer: TRIODeregisterBuffer;RIOStartRequestQueue: TRIOStartRequestQueue;RIOStopRequestQueue: TRIOStopRequestQueue;RIOCreateRequestQueueEx: TRIOCreateRequestQueueEx;RIOSendMessages: TRIOSendMessages;RIOSendMessagesEx: TRIOSendMessagesEx;RIORecv: TRIOSendMessagesEx;RIORecvEx: TRIOSendMessagesEx;RIOStreamRecv: TRIOStreamRecv;RIOStreamRecvEx: TRIOStreamRecvEx;RIOStreamSend: TRIOStreamSend;RIOStreamSendEx: TRIOStreamSendEx;RIOQueryBuffer: TRIODeregisterBuffer;RIOGetBufferId: TRIOGetBufferId;RIOGetBufferIdEx: TRIOGetBufferIdEx;RIOFreeBufferId: TRIODeregisterBufferList;RIOFlush: TRIOFlush;RIOGetCompletionStatus: TRIOGetCompletionStatus;RIOGetCompletionStatusEx: TRIOGetCompletionStatusEx;end;