SerCxRetrieveTransmitBuffer 函数 (sercx.h)
SerCxRetrieveTransmitBuffer 方法获取一个输出缓冲区,其中包含准备传输到串行端口的数据。
语法
NTSTATUS SerCxRetrieveTransmitBuffer(
[in] WDFDEVICE Device,
[in] ULONG Length,
[in, out] PSERCX_BUFFER_DESCRIPTOR BufferDescriptor
);
参数
[in] Device
表示串行控制器的框架设备对象的 WDFDEVICE 句柄。
[in] Length
请求的缓冲区长度(以字节为单位)。 如果 SerCxRetrieveTransmitBuffer 调用成功,则调用方将收到一个输出缓冲区,其中包含最多 长度 字节的可用数据。 (缓冲区中的可用数据可能小于 长度 字节。)SerCxRetrieveTransmitBuffer 将可用数据的实际字节数写入由 BufferDescriptor 参数指向的结构的 Length 成员。
[in, out] BufferDescriptor
指向调用方分配 SERCX_BUFFER_DESCRIPTOR 结构的指针。 此结构描述用于传输操作的数据缓冲区。 调用方以前调用 SERCX_BUFFER_DESCRIPTOR_INIT 函数来初始化此结构。 SerCxRetrieveTransmitBuffer 写入 缓冲区,并 长度 此结构的成员。
返回值
SerCxRetrieveTransmitBuffer 如果成功,则返回STATUS_SUCCESS。 可能的错误返回值包括以下状态代码。
返回代码 | 描述 |
---|---|
|
在错误的 IRQL 中调用了该方法;或 WDFDEVICE 句柄无效;或 Device 或 BufferDescriptor 为 NULL;或驱动程序已有传输缓冲区。 |
|
为 SERCX_BUFFER_DESCRIPTOR 结构指定了错误的大小。 |
|
无法分配系统资源(通常是内存)。 |
言论
串行控制器驱动程序调用此方法以获取包含当前传输(写入)操作的输出数据的缓冲区。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 8 开始可用。 |
目标平台 | 普遍 |
标头 | sercx.h |
IRQL | <= DISPATCH_LEVEL |