SerCxRetrieveReceiveBuffer 函数 (sercx.h)

SerCxRetrieveReceiveBuffer 方法获取从串行端口接收的数据可以加载到的输入缓冲区。

语法

NTSTATUS SerCxRetrieveReceiveBuffer(
  [in]      WDFDEVICE                Device,
  [in]      ULONG                    Length,
  [in, out] PSERCX_BUFFER_DESCRIPTOR BufferDescriptor
);

参数

[in] Device

表示串行控制器的框架设备对象的 WDFDEVICE 句柄。

[in] Length

请求的缓冲区长度(以字节为单位)。 如果 SerCxRetrieveReceiveBuffer 调用成功,则调用方将收到一个输入缓冲区,该缓冲区包含最多 长度 字节的可用空间。 (缓冲区中的可用空间可能小于 长度 字节。SerCxRetrieveReceiveBuffer 将可用空间的实际字节数写入 BufferDescriptor 参数指向的结构的 Length 成员。

[in, out] BufferDescriptor

指向调用方分配 SERCX_BUFFER_DESCRIPTOR 结构的指针。 此结构描述用于接收操作的数据缓冲区。 调用方以前调用 SERCX_BUFFER_DESCRIPTOR_INIT 函数来初始化此结构。 SerCxRetrieveTransmitBuffer 写入 缓冲区,并 长度 此结构的成员。

返回值

SerCxRetrieveReceiveBuffer 如果成功,则返回STATUS_SUCCESS。 可能的错误返回值包括以下状态代码。

返回代码 描述
STATUS_INVALID_DEVICE_REQUEST
在错误的 IRQL 中调用了该方法;或 WDFDEVICE 句柄无效;或 DeviceBufferDescriptor 为 NULL;或驱动程序已有接收缓冲区。
STATUS_INFO_LENGTH_MISMATCH
SERCX_BUFFER_DESCRIPTOR 结构指定了错误的大小。
STATUS_INSUFFICIENT_RESOURCES
无法分配系统资源(通常是内存)。

言论

串行控制器驱动程序调用此方法以获取缓冲区以包含当前接收(读取)操作的输入数据。

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
目标平台 普遍
标头 sercx.h
IRQL <= DISPATCH_LEVEL

另请参阅

SERCX_BUFFER_DESCRIPTOR

SERCX_BUFFER_DESCRIPTOR_INIT