FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST回调函数 (vmbuskernelmodeclientlibapi.h)
[某些信息与预发行的产品有关,该产品在商业发布之前可能会进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。
VmbChannelSendSynchronousRequest 函数将数据包发送到相反的终结点,并等待响应。
语法
FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST FnVmbChannelSendSynchronousRequest;
NTSTATUS FnVmbChannelSendSynchronousRequest(
VMBCHANNEL Channel,
PVOID Buffer,
UINT32 BufferSize,
PMDL ExternalDataMdl,
UINT32 Flags,
PVOID CompletionBuffer,
PUINT32 CompletionBufferSize,
PLARGE_INTEGER Timeout
)
{...}
参数
Channel
通道的句柄。
Buffer
要发送的数据。
BufferSize
要发送的数据的大小(以字节为单位)。
ExternalDataMdl
描述要发送的其他缓冲区的内存描述符列表(MDL)。
Flags
标准标志。
CompletionBuffer
用于存储完成数据包结果的缓冲区。
CompletionBufferSize
CompletionBuffer 值的大小(以字节为单位)。 此值必须向上舍入到最接近的 8 个字节,否则函数将失败。 成功后,返回写入 CompletionBuffer的字节数。
Timeout
KeWaitForSingleObject 路由样式的超时。 此时间过后,数据包将被取消。 对于零(0)的超时,如果数据包不在环形缓冲区中,则不会排队。
返回值
返回代码 | 描述 |
---|---|
|
函数成功完成。 |
|
数据包不适合缓冲区,并且未排队。 |
|
数据包已取消。 |
|
通道正在关闭。 |
言论
客户端可以使用任意参数组合运行此函数。
仅当未设置 *Timeout == 0
和 VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION 标志时,根才能调用它。
重要
此函数通过 Vmbkmcl.sys 总线驱动程序提供的 VMBus 内核模式客户端库(KMCL)接口调用。 这是从 KMCL_CLIENT_INTERFACE_V1 结构访问的客户端函数。
有关详细信息,请参阅 KMCL_CLIENT_INTERFACE_V1的“备注”部分。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 版本 1803 |
标头 | vmbuskernelmodeclientlibapi.h |