Go to the source code of this file.
|
NTSTATUS NTAPI | UDFLockControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
|
NTSTATUS NTAPI | UDFCommonLockControl (IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp) |
|
BOOLEAN NTAPI | UDFFastLock (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, PEPROCESS ProcessId, ULONG Key, BOOLEAN FailImmediately, BOOLEAN ExclusiveLock, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | UDFFastUnlockSingle (IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, PEPROCESS ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | UDFFastUnlockAll (IN PFILE_OBJECT FileObject, PEPROCESS ProcessId, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
BOOLEAN NTAPI | UDFFastUnlockAllByKey (IN PFILE_OBJECT FileObject, PEPROCESS ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject) |
|
◆ UDF_BUG_CHECK_ID
◆ UDFCommonLockControl()
Definition at line 105 of file lockctrl.cpp.
108{
111
112
120
121 UDFPrint((
"UDFCommonLockControl\n"));
122
124
127
130
131
136
139
140
142 }
143
146
147
152 }
154
156
157
159
161
162
163 if (AcquiredFCB) {
167 }
168 if (PostRequest) {
169
171 } else
173
174
176 }
178
179 return(RC);
180}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
_In_ PIO_STACK_LOCATION IrpSp
NTSTATUS UDFPostRequest(IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp)
VOID UDFReleaseIrpContext(PtrUDFIrpContext PtrIrpContext)
#define UDFReleaseResource(Resource)
#define UDFAcquireResourceExclusive(Resource, CanWait)
NTSTATUS NTAPI FsRtlProcessFileLock(IN PFILE_LOCK FileLock, IN PIRP Irp, IN PVOID Context OPTIONAL)
#define _SEH2_AbnormalTermination()
#define UDF_IRP_CONTEXT_CAN_BLOCK
struct _UDFContextControlBlock * PtrUDFCCB
#define UDF_NODE_TYPE_VCB
#define UDF_FCB_DIRECTORY
struct _FCB::@729::@732 Fcb
#define STATUS_INVALID_PARAMETER
#define UDF_CHECK_PAGING_IO_RESOURCE(NTReqFCB)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Referenced by UDFLockControl().
◆ UDFFastLock()
Definition at line 205 of file lockctrl.cpp.
216{
218
219
222
224
225
226
227
228
233
236
240 }
241
242
243
245
246
247
248
250
251
252
253
254
255
267
268
270 }
271
272
274
275
276
277
278
279
281
283
284 return Results;
285}
_In_ PFCB _In_ LONGLONG FileOffset
FAST_IO_POSSIBLE NTAPI UDFIsFastIoPossible(IN PtrUDFFCB Fcb)
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
_In_ ULONG _In_ ULONG _In_ ULONG Length
Referenced by UDFInitializeFunctionPointers().
◆ UDFFastUnlockAll()
Definition at line 404 of file lockctrl.cpp.
411{
413
414
417
419
421
422
423
424
429
432
435 }
436
437
438
440
443
445
446
447
448
449
450
456
457
458
460
461
463
464
465
469
471
472 return Results;
473}
#define UDFAcquireResourceShared(Resource, CanWait)
NTSTATUS NTAPI FsRtlFastUnlockAll(IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN PVOID Context OPTIONAL)
Referenced by UDFInitializeFunctionPointers().
◆ UDFFastUnlockAllByKey()
Definition at line 494 of file lockctrl.cpp.
502{
504
505
508
509 UDFPrint((
"UDFFastUnlockAllByKey\n"));
510
512
513
514
515
520
523
526 }
527
528
529
531
534
536
537
538
539
540
541
548
549
550
552
553
555
556
557
561
563
564 return Results;
565}
NTSTATUS NTAPI FsRtlFastUnlockAllByKey(IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN ULONG Key, IN PVOID Context OPTIONAL)
Referenced by UDFInitializeFunctionPointers().
◆ UDFFastUnlockSingle()
Definition at line 309 of file lockctrl.cpp.
319{
321
322
325
326 UDFPrint((
"UDFFastUnlockSingle\n"));
327
328
329
331
332
337
340
343 }
344
345
346
348
349
350
351
353
354
355
356
357
358
368
370
371
373
374
375
376
377
378
380
382
383 return Results;
384}
NTSTATUS NTAPI FsRtlFastUnlockSingle(IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN PEPROCESS Process, IN ULONG Key, IN PVOID Context OPTIONAL, IN BOOLEAN AlreadySynchronized)
Referenced by UDFInitializeFunctionPointers().
◆ UDFLockControl()
Definition at line 38 of file lockctrl.cpp.
41{
45
47
48
52
53
55
56
58
59
61 if(PtrIrpContext) {
63 } else {
65 Irp->IoStatus.Status = RC;
66 Irp->IoStatus.Information = 0;
67
69 }
70
72
74
77
78 if (AreWeTopLevel) {
80 }
81
83
84 return(RC);
85}
NTSTATUS UDFExceptionHandler(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
BOOLEAN __fastcall UDFIsIrpTopLevel(PIRP Irp)
VOID UDFLogEvent(NTSTATUS UDFEventLogId, NTSTATUS RC)
PtrUDFIrpContext UDFAllocateIrpContext(PIRP Irp, PDEVICE_OBJECT PtrTargetDeviceObject)
long UDFExceptionFilter(PtrUDFIrpContext PtrIrpContext, PEXCEPTION_POINTERS PtrExceptionPointers)
#define UDF_ERROR_INTERNAL_ERROR
NTSTATUS NTAPI UDFCommonLockControl(IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp)
#define IoCompleteRequest
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
#define IO_DISK_INCREMENT
Referenced by UDFInitializeFunctionPointers().