Hi, I’m trying to apply FltGetFileNameInformation when opening MailSlot, as a result I get STATUS_OBJECT_NAME_INVALID
Can you tell me what it may be related to?
This code works with NamedPipe
PFLT_FILE_NAME_INFORMATION NameInformation;
status = FltGetFileNameInformation(
Data,
FLT_FILE_NAME_NORMALIZED | FLT_FILE_NAME_QUERY_DEFAULT,
&NameInformation);
In user space app call
DesiredAccess = 0x80140000
ObjectAttributes.RootDirectory = NULL
ObjectAttributes.ObjectName = {Length=0x0024 MaximumLength=0x0026 Buffer=0x090b39c0 L"\\??\\mailslot\\Lilo1" } _UNICODE_STRING *
CreateOptions = FILE_WRITE_THROUGH
MailslotQuota = 0
MaxMessageSize = 0
ReadTimeOut = 0xffffffff
NtCreateMailslotFile(
MailslotFileHandle,
DesiredAccess,
ObjectAttributes,
IoStatusBlock,
CreateOptions,
MailslotQuota,
MaxMessageSize,
ReadTimeOut);
Okey, I solved wthis
MailSlots unsupport FLT_FILE_NAME_NORMALIZED
It is written about this here https://community.osr.com/discussion/71813/re-fltgetfilenameinformation-returns-invalid-device-request-for-named
PFLT_FILE_NAME_INFORMATION NameInformation;
status = FltGetFileNameInformation(
Data,
FLT_FILE_NAME_NORMALIZED | FLT_FILE_NAME_QUERY_DEFAULT,
&NameInformation);
// test if mailslot
// mailslots unsupport FLT_FILE_NAME_NORMALIZED
if (!NT_SUCCESS(status)) {
status = FltGetFileNameInformation(
Data,
FLT_FILE_NAME_OPENED | FLT_FILE_NAME_QUERY_DEFAULT,
&NameInformation);
}
Admin, can you close discussion?