Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 117 of file mailslot.c.
{ FILE_MAILSLOT_QUERY_INFORMATION Buffer; IO_STATUS_BLOCK Iosb; NTSTATUS Status; LARGE_INTEGER Timeout; Status = NtQueryInformationFile(hMailslot, &Iosb, &Buffer, sizeof(FILE_MAILSLOT_QUERY_INFORMATION), FileMailslotQueryInformation); if (!NT_SUCCESS(Status)) { DPRINT1("NtQueryInformationFile failed (Status %x)!\n", Status); BaseSetLastNTError(Status); return FALSE; } if (lpMaxMessageSize) *lpMaxMessageSize = Buffer.MaximumMessageSize; if (lpNextSize) *lpNextSize = Buffer.NextMessageSize; if (lpMessageCount) *lpMessageCount = Buffer.MessagesAvailable; if (lpReadTimeout) { if (Buffer.ReadTimeout.QuadPart == 0xFFFFFFFFFFFFFFFFLL) { *lpReadTimeout = MAILSLOT_WAIT_FOREVER; } else { Timeout.QuadPart = -Buffer.ReadTimeout.QuadPart; Timeout = RtlExtendedLargeIntegerDivide(Timeout, 10000, NULL); if (Timeout.HighPart == 0) { *lpReadTimeout = Timeout.LowPart; } else { *lpReadTimeout = 0xFFFFFFFE; } } } return TRUE; }