C++ FltSendMessage:无法发送消息

C++ FltSendMessage:无法发送消息,c++,windows,driver,C++,Windows,Driver,我正在尝试使用函数fltkernel.h向应用程序发送消息。我尝试了几次改变,但都没能成功 在司机室 应用程序内 结果 调试视图=成功! 应用程序输出=消息ID 0 任何有任何提示的人?您的驱动程序可能会获得状态\u超时,这是一个成功代码,因此NT\u成功将评估为真。谢谢你的帮助!我进行了更多的研究,发现filtergetmessage函数以以下格式接收数据:重叠过滤器\消息\标头缓冲区\结构接收数据缓冲区的大小必须包含3个结构大小的总和 X.QuadPart = ((-1 * 10) *

我正在尝试使用函数fltkernel.h向应用程序发送消息。我尝试了几次改变,但都没能成功

在司机室

应用程序内

结果

调试视图=成功! 应用程序输出=消息ID 0


任何有任何提示的人?

您的驱动程序可能会获得状态\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);
    }