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 (0) 超时,如果数据包不在环形缓冲区中,则不会排队。
返回值
返回代码 | 说明 |
---|---|
|
函数已成功完成。 |
|
数据包未放入缓冲区中,并且未排队。 |
|
数据包已取消。 |
|
通道正在关闭。 |
注解
客户端可以使用参数的任意组合运行此函数。
根仅可在未设置 VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION 标志的情况下*Timeout == 0
调用它。
重要
此函数通过 VMBus 内核模式客户端库 (KMCL) 接口调用,由 Vmbkmcl.sys 总线驱动程序提供。 这是从 KMCL_CLIENT_INTERFACE_V1 结构访问的客户端函数。
有关详细信息,请参阅 KMCL_CLIENT_INTERFACE_V1的“备注”部分。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1803 |
标头 | vmbuskernelmodeclientlibapi.h |