109{
119
121
126
128
131 {
133 Irp->IoStatus.Information = 0;
134
136
138 }
139
143 Fcb->Name.MaximumLength,
144 'NFsM');
146 {
148
150 Irp->IoStatus.Information = 0;
151
153
155 }
156
158
161 {
164
166 Irp->IoStatus.Information = 0;
167
169
171 }
172
173 Fcb->ReferenceCount = 0;
176
177 Fcb->MaxMessageSize =
Buffer->MaximumMessageSize;
178 Fcb->MessageCount = 0;
180
183
193
196 while (current_entry != &DeviceExtension->
FcbListHead)
197 {
200 FcbListEntry);
201
203 break;
204
205 current_entry = current_entry->
Flink;
206 }
207
208 if (current_entry != &DeviceExtension->
FcbListHead)
209 {
213
215
217 Irp->IoStatus.Information = 0;
218
220
222 }
223 else
224 {
227 }
228
232
233 Fcb->ReferenceCount++;
236
238
242
244 Irp->IoStatus.Information = 0;
245
247
249}
NTKERNELAPI NTSTATUS NTAPI IoCsqInitialize(_Out_ PIO_CSQ Csq, _In_ PIO_CSQ_INSERT_IRP CsqInsertIrp, _In_ PIO_CSQ_REMOVE_IRP CsqRemoveIrp, _In_ PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp, _In_ PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock, _In_ PIO_CSQ_RELEASE_LOCK CsqReleaseLock, _In_ PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp)
Set up a CSQ struct to initialize the queue.
#define InitializeListHead(ListHead)
#define KeInitializeSpinLock(sl)
IO_CSQ_REMOVE_IRP MsfsRemoveIrp
IO_CSQ_ACQUIRE_LOCK MsfsAcquireLock
IO_CSQ_RELEASE_LOCK MsfsReleaseLock
IO_CSQ_COMPLETE_CANCELED_IRP MsfsCompleteCanceledIrp
IO_CSQ_PEEK_NEXT_IRP MsfsPeekNextIrp
IO_CSQ_INSERT_IRP MsfsInsertIrp
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
struct _IO_STACK_LOCATION::@4106::@4109 CreateMailslot
union _IO_STACK_LOCATION::@1619 Parameters