FilterGetMessage receives MessageId null

Hello ! In my driver I send notification to user mode: LARGE_INTEGER timeout; timeout.QuadPart = -100000000; //10 seconds stat = send_message_to_um(&rr, sizeof(rr), &timeout); NTSTATUS send_message_to_um(void* send_buffer, ULONG send_buffer_length, PLARGE_INTEGER timeout) { ULONG reply_buffer_length(0); return FltSendMessage(get_driver()->get_filter(), &driver_with_communication_port::client_port, send_buffer, send_buffer_length, 0, &reply_buffer_length, timeout); } In user mode FilterGetMessage returns success but MessageId is null: res = FilterGetMessage(port, &um_rr.hdr, sizeof(um_rr.hdr) + sizeof(um_rr.ren_rep), 0); My custom data in message are ok, only common header is zeroed. Any ideas what can be the problem ?

I solved my problem by requesting dummy reply in FltSendMessage. I set reply buffer to &dummy instead of 0.