LPFN_RIODEREGISTERBUFFER回调函数 (mswsock.h)
RIODeregisterBuffer 函数取消注册与 Winsock 注册的 I/O 扩展一起使用的已注册缓冲区。
语法
LPFN_RIODEREGISTERBUFFER LpfnRioderegisterbuffer;
void LpfnRioderegisterbuffer(
RIO_BUFFERID BufferId
)
{...}
参数
BufferId
标识已注册缓冲区的描述符。
返回值
无
备注
RIODeregisterBuffer 函数取消注册已注册的缓冲区。 取消注册缓冲区时,应用程序指示使用 BufferId 参数中传递的缓冲区标识符完成。 尝试使用此缓冲区标识符的其他函数的任何后续调用都将失败。
如果取消注册仍在使用的缓冲区,则结果未定义。 这被视为严重错误。 在 RIODequeueCompletion 函数返回的 RIORESULT 结构中,状态将与正常状态保持不变。 应用程序开发人员可以使用应用程序验证程序工具检测此错误情况。
如果在 BufferId 参数中传递了无效的缓冲区标识符, 则 RIODeregisterBuffer 函数会忽略此标识符。
注意
必须在运行时通过调用 WSAIoctl 函数并指定SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER操作码来获取指向 RIODeregisterBuffer 函数的函数指针。 传递给 WSAIoctl 函数的输入缓冲区必须包含 WSAID_MULTIPLE_RIO,这是一个全局唯一标识符, (GUID) 其值标识 Winsock 注册的 I/O 扩展函数。 成功后, WSAIoctl 函数返回的输出包含指向 RIO_EXTENSION_FUNCTION_TABLE 结构的指针,该结构包含指向 Winsock 注册的 I/O 扩展函数的指针。 SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER IOCTL 在 Ws2def.h 头文件中定义。 WSAID_MULTIPLE_RIO GUID 在 Mswsock.h 头文件中定义。
Windows Phone 8:Windows Phone 8 及更高版本上的 Windows Phone 应用商店应用支持此函数。
Windows 8.1和Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更高版本的 Windows 应用商店应用支持此函数。
要求
要求 | 值 |
---|---|
Header | mswsock.h |