C++ FltSendMessage:无法发送消息
我正在尝试使用函数fltkernel.h向应用程序发送消息。我尝试了几次改变,但都没能成功 在司机室 应用程序内 结果 调试视图=成功! 应用程序输出=消息ID 0C++ FltSendMessage:无法发送消息,c++,windows,driver,C++,Windows,Driver,我正在尝试使用函数fltkernel.h向应用程序发送消息。我尝试了几次改变,但都没能成功 在司机室 应用程序内 结果 调试视图=成功! 应用程序输出=消息ID 0 任何有任何提示的人?您的驱动程序可能会获得状态\u超时,这是一个成功代码,因此NT\u成功将评估为真。谢谢你的帮助!我进行了更多的研究,发现filtergetmessage函数以以下格式接收数据:重叠过滤器\消息\标头缓冲区\结构接收数据缓冲区的大小必须包含3个结构大小的总和 X.QuadPart = ((-1 * 10) *
任何有任何提示的人?您的驱动程序可能会获得状态\u超时,这是一个成功代码,因此NT\u成功将评估为真。谢谢你的帮助!我进行了更多的研究,发现filtergetmessage函数以以下格式接收数据:重叠过滤器\消息\标头缓冲区\结构接收数据缓冲区的大小必须包含3个结构大小的总和
X.QuadPart = ((-1 * 10) * 1000) * 1000;
message.MessageId = 15;
message.ReplyLength = 12;
if NT_SUCCESS( FltSendMessage(fileManager.pFilter, &fileManager.ClientPort, buffer, sizeof(buffer), NULL/*&Reply*/, NULL/*&ReplyLength*/, &X) );
DbgPrint("Success!");
HRESULT hResult = S_OK;
HANDLE Port;
FILTER_MESSAGE_HEADER message;
OVERLAPPED Ovlp;
hResult = FilterConnectCommunicationPort(FLPORTNAME, 0, NULL, 0, NULL, &Port);
message.MessageId = 0;
message.ReplyLength = 0;
while (true){
hResult = FilterGetMessage(Port, &message, sizeof(FILTER_MESSAGE_HEADER), NULL);//&Ovlp
printf("MessageId %d %d \n", message.MessageId, hResult);
}