#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.
74{
83
84 DPRINT(
"MsfsQueryInformation(DeviceObject %p Irp %p)\n",
86
92
93 DPRINT(
"Mailslot name: %wZ\n", &
Fcb->Name);
94
95
97 {
99
101 Irp->IoStatus.Information = 0;
102
104
106 }
107
108 SystemBuffer =
Irp->AssociatedIrp.SystemBuffer;
110
112 {
115 SystemBuffer,
117 break;
118
119 default:
121 }
122
125 Irp->IoStatus.Information =
127 else
128 Irp->IoStatus.Information = 0;
130
132}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
#define NT_SUCCESS(StatCode)
@ FileMailslotQueryInformation
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
static NTSTATUS MsfsQueryMailslotInformation(PMSFS_FCB Fcb, PFILE_MAILSLOT_QUERY_INFORMATION Buffer, PULONG BufferLength)
struct _MSFS_FCB * PMSFS_FCB
#define IoCompleteRequest
#define STATUS_NOT_IMPLEMENTED
struct _IO_STACK_LOCATION::@3974::@3983 QueryFile
union _IO_STACK_LOCATION::@1575 Parameters
#define STATUS_ACCESS_DENIED
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
◆ MsfsQueryMailslotInformation()
Definition at line 24 of file finfo.c.
27{
29
32
33 Buffer->MaximumMessageSize =
Fcb->MaxMessageSize;
35
37 Buffer->MessagesAvailable =
Fcb->MessageCount;
38 if (
Fcb->MessageCount == 0)
39 {
41 }
42 else
43 {
46 MessageListEntry);
48 }
50
52
54}
static const WCHAR Message[]
#define KeReleaseSpinLock(sl, irql)
#define KeAcquireSpinLock(sl, irql)
struct _FILE_MAILSLOT_QUERY_INFORMATION FILE_MAILSLOT_QUERY_INFORMATION
#define MAILSLOT_NO_MESSAGE
#define STATUS_BUFFER_OVERFLOW
#define CONTAINING_RECORD(address, type, field)
Referenced by MsfsQueryInformation().
◆ MsfsSetInformation()
Definition at line 136 of file finfo.c.
138{
147
149
155
156 DPRINT(
"Mailslot name: %wZ\n", &
Fcb->Name);
157
158
159 if (
Fcb->ServerCcb !=
Ccb)
160 {
162
164 Irp->IoStatus.Information = 0;
165
167
169 }
170
171 SystemBuffer =
Irp->AssociatedIrp.SystemBuffer;
173
175 DPRINT(
"SystemBuffer %p\n", SystemBuffer);
176
178 {
181 SystemBuffer,
183 break;
184
185 default:
187 }
188
190 Irp->IoStatus.Information = 0;
192
194}
@ FileMailslotSetInformation
static NTSTATUS MsfsSetMailslotInformation(PMSFS_FCB Fcb, PFILE_MAILSLOT_SET_INFORMATION Buffer, PULONG BufferLength)
◆ MsfsSetMailslotInformation()