#include "msfs.h"
#include <debug.h>
Go to the source code of this file.
◆ MAILSLOT_NO_MESSAGE
◆ MAILSLOT_WAIT_FOREVER
◆ NDEBUG
◆ MsfsQueryInformation()
Definition at line 72 of file finfo.c.
84 DPRINT(
"MsfsQueryInformation(DeviceObject %p Irp %p)\n",
93 DPRINT(
"Mailslot name: %wZ\n", &
Fcb->Name);
101 Irp->IoStatus.Information = 0;
108 SystemBuffer =
Irp->AssociatedIrp.SystemBuffer;
125 Irp->IoStatus.Information =
128 Irp->IoStatus.Information = 0;
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
_In_ PDEVICE_OBJECT DeviceObject
return STATUS_NOT_IMPLEMENTED
#define IoCompleteRequest
struct _MSFS_FCB * PMSFS_FCB
static NTSTATUS MsfsQueryMailslotInformation(PMSFS_FCB Fcb, PFILE_MAILSLOT_QUERY_INFORMATION Buffer, PULONG BufferLength)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
#define NT_SUCCESS(StatCode)
#define STATUS_ACCESS_DENIED
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
◆ MsfsQueryMailslotInformation()
Definition at line 24 of file finfo.c.
33 Buffer->MaximumMessageSize =
Fcb->MaxMessageSize;
37 Buffer->MessagesAvailable =
Fcb->MessageCount;
38 if (
Fcb->MessageCount == 0)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
VOID NTAPI KeAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL OldIrql)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
struct _FILE_MAILSLOT_QUERY_INFORMATION FILE_MAILSLOT_QUERY_INFORMATION
#define MAILSLOT_NO_MESSAGE
#define STATUS_BUFFER_OVERFLOW
#define KeReleaseSpinLock(sl, irql)
Referenced by MsfsQueryInformation().
◆ MsfsSetInformation()
Definition at line 136 of file finfo.c.
156 DPRINT(
"Mailslot name: %wZ\n", &
Fcb->Name);
159 if (
Fcb->ServerCcb !=
Ccb)
164 Irp->IoStatus.Information = 0;
171 SystemBuffer =
Irp->AssociatedIrp.SystemBuffer;
175 DPRINT(
"SystemBuffer %p\n", SystemBuffer);
190 Irp->IoStatus.Information = 0;
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
_In_ PDEVICE_OBJECT DeviceObject
return STATUS_NOT_IMPLEMENTED
#define IoCompleteRequest
struct _MSFS_FCB * PMSFS_FCB
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
static NTSTATUS MsfsSetMailslotInformation(PMSFS_FCB Fcb, PFILE_MAILSLOT_SET_INFORMATION Buffer, PULONG BufferLength)
#define STATUS_ACCESS_DENIED
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
◆ MsfsSetMailslotInformation()
Definition at line 58 of file finfo.c.
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
#define STATUS_BUFFER_OVERFLOW
Referenced by MsfsSetInformation().