SerCxRetrieveReceiveBuffer 函数 (sercx.h)
SerCxRetrieveReceiveBuffer 方法获取输入缓冲区,从串行端口接收的数据可以加载到其中。
语法
NTSTATUS SerCxRetrieveReceiveBuffer(
[in] WDFDEVICE Device,
[in] ULONG Length,
[in, out] PSERCX_BUFFER_DESCRIPTOR BufferDescriptor
);
参数
[in] Device
表示串行控制器的框架设备对象的 WDFDEVICE 句柄。
[in] Length
请求的缓冲区长度(以字节为单位)。 如果 SerCxRetrieveReceiveBuffer 调用成功,则调用方会收到一个输入缓冲区,该缓冲区最多包含可用空间的 长度 字节。 (缓冲区中的可用空间可能小于 Length bytes。) SerCxRetrieveReceiveBuffer 将可用空间的实际字节数写入 BufferDescriptor 参数指向的结构的 Length 成员。
[in, out] BufferDescriptor
指向调用方分配 的SERCX_BUFFER_DESCRIPTOR 结构的指针。 此结构描述用于接收操作的数据缓冲区。 调用方之前调用 SERCX_BUFFER_DESCRIPTOR_INIT 函数来初始化此结构。 SerCxRetrieveTransmitBuffer 写入此结构的 Buffer 和 Length 成员。
返回值
如果成功,SerCxRetrieveReceiveBuffer 将返回STATUS_SUCCESS。 可能的错误返回值包括以下状态代码。
返回代码 | 说明 |
---|---|
|
在错误的 IRQL 中调用了 方法;或 WDFDEVICE 句柄无效;或 Device 或 BufferDescriptor 为 NULL;或驱动程序已具有接收缓冲区。 |
|
为 SERCX_BUFFER_DESCRIPTOR 结构指定了错误的大小。 |
|
无法 (内存) 分配系统资源。 |
注解
串行控制器驱动程序调用此方法来获取缓冲区,以包含当前接收 (读取) 操作的输入数据。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从Windows 8开始可用。 |
目标平台 | 通用 |
标头 | sercx.h |
IRQL | <= DISPATCH_LEVEL |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈