ReactOS 0.4.15-dev-7788-g1ad9096
protos.h
Go to the documentation of this file.
1
2// Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
3// All rights reserved
4// This file was released under the GPLv2 on June 2015.
6/*************************************************************************
7*
8* File: protos.h
9*
10* Module: UDF File System Driver (Kernel mode execution only)
11*
12* Description:
13* Contains the prototypes for functions in UDF FSD.
14*
15*************************************************************************/
16
17#ifndef _UDF_PROTOS_H_
18#define _UDF_PROTOS_H_
19
20#include "mem.h"
21
22/*************************************************************************
23* Prototypes for the file create.cpp
24*************************************************************************/
26 IN PDEVICE_OBJECT DeviceObject, // the logical volume device object
27 IN PIRP Irp); // I/O Request Packet
28
30 IN PtrUDFIrpContext PtrIrpContext,
31 IN PIRP Irp);
32
34 IN PVCB Vcb, // volume control block
35 IN PFILE_OBJECT PtrNewFileObject, // I/O Mgr. created file object
36 OUT PtrUDFFCB* PtrNewFcb,
37 IN PUDF_FILE_INFO RelatedFileInfo,
38 IN PUDF_FILE_INFO NewFileInfo,
39 IN PUNICODE_STRING LocalPath,
40 IN PUNICODE_STRING CurName);
41
43 IN PVCB Vcb, // volume control block
44 IN PFILE_OBJECT PtrNewFileObject, // I/O Mgr. created file object
45 IN PtrUDFFCB PtrNewFcb);
46
48 IN PtrUDFFCB PtrNewFcb, // FCB structure to be initialized
49 IN PVCB Vcb, // logical volume (VCB) pointer
50 IN PtrUDFObjectName PtrObjectName, // name of the object
51 IN ULONG Flags, // is this a file/directory, etc.
52 IN PFILE_OBJECT FileObject); // optional file object to be initialized
53
54/*************************************************************************
55* Prototypes for the file cleanup.cpp
56*************************************************************************/
58PDEVICE_OBJECT DeviceObject, // the logical volume device object
59PIRP Irp); // I/O Request Packet
60
62PtrUDFIrpContext PtrIrpContext,
63PIRP Irp);
64
67 IN ULONG TreeLength,
68 IN BOOLEAN VcbAcquired);
69/*************************************************************************
70* Prototypes for the file close.cpp
71*************************************************************************/
73PDEVICE_OBJECT DeviceObject, // the logical volume device object
74PIRP Irp); // I/O Request Packet
75
77PtrUDFIrpContext PtrIrpContext,
78PIRP Irp);
79
80#define UDF_CLOSE_NTREQFCB_DELETED 0x01
81#define UDF_CLOSE_FCB_DELETED 0x02
82
85 IN ULONG TreeLength,
86 IN BOOLEAN VcbAcquired);
87
89
91
94 IN BOOLEAN System);
95
96#define UDFCloseAllDelayedInDir(Vcb,FI) \
97 UDFCloseAllXXXDelayedInDir(Vcb,FI,FALSE);
98
99#define UDFCloseAllSystemDelayedInDir(Vcb,FI) \
100 UDFCloseAllXXXDelayedInDir(Vcb,FI,TRUE);
101
103 PtrUDFFCB Fcb);
104
105//extern VOID UDFRemoveFromDelayedQueue(PtrUDFFCB Fcb);
106#define UDFRemoveFromDelayedQueue(Fcb) \
107 UDFCloseAllDelayedInDir((Fcb)->Vcb, (Fcb)->FileInfo)
108
109#define UDFRemoveFromSystemDelayedQueue(Fcb) \
110 UDFCloseAllSystemDelayedInDir((Fcb)->Vcb, (Fcb)->FileInfo)
111
112/*************************************************************************
113* Prototypes for the file dircntrl.cpp
114*************************************************************************/
116PDEVICE_OBJECT DeviceObject, // the logical volume device object
117PIRP Irp); // I/O Request Packet
118
120PtrUDFIrpContext PtrIrpContext,
121PIRP Irp);
122
124PtrUDFIrpContext PtrIrpContext,
125PIRP Irp,
130
132PtrUDFIrpContext PtrIrpContext,
133PIRP Irp,
138
139/*************************************************************************
140* Prototypes for the file devcntrl.cpp
141*************************************************************************/
143PDEVICE_OBJECT DeviceObject, // the logical volume device object
144PIRP Irp); // I/O Request Packet
145
147PtrUDFIrpContext PtrIrpContext,
148PIRP Irp);
149
151PDEVICE_OBJECT PtrDeviceObject,
152PIRP Irp,
154
156PVOID BufferPointer);
157
158/*************************************************************************
159* Prototypes for the file fastio.cpp
160*************************************************************************/
170
173
180
187
190
193
197
200
204
207
210
211// the remaining are only valid under NT Version 4.0 and later
212#if(_WIN32_WINNT >= 0x0400)
213
214extern BOOLEAN NTAPI UDFFastIoQueryNetInfo(
220
221extern BOOLEAN NTAPI UDFFastIoMdlRead(
229
230extern BOOLEAN UDFFastIoMdlReadComplete(
234
235extern BOOLEAN NTAPI UDFFastIoPrepareMdlWrite(
243
244extern BOOLEAN NTAPI UDFFastIoMdlWriteComplete(
249
250extern NTSTATUS NTAPI UDFFastIoAcqModWrite(
255
256extern NTSTATUS NTAPI UDFFastIoRelModWrite(
260
261extern NTSTATUS NTAPI UDFFastIoAcqCcFlush(
264
265extern NTSTATUS NTAPI UDFFastIoRelCcFlush(
268
269extern BOOLEAN NTAPI UDFFastIoDeviceControl (
279
280extern BOOLEAN
281NTAPI
291 );
292
293#endif // (_WIN32_WINNT >= 0x0400)
294
295/*************************************************************************
296* Prototypes for the file fileinfo.cpp
297*************************************************************************/
299PDEVICE_OBJECT DeviceObject, // the logical volume device object
300PIRP Irp); // I/O Request Packet
301
303PtrUDFIrpContext PtrIrpContext,
304PIRP Irp);
305
309 IN PFILE_BASIC_INFORMATION PtrBuffer,
310 IN OUT LONG* PtrReturnedLength);
311
315 IN OUT PLONG PtrReturnedLength);
316
320 IN OUT PLONG PtrReturnedLength);
321
323 PtrUDFIrpContext PtrIrpContext,
327 IN OUT PLONG PtrReturnedLength);
328
330 PtrUDFIrpContext PtrIrpContext,
332 IN PFILE_EA_INFORMATION PtrBuffer,
333 IN OUT PLONG PtrReturnedLength);
334
337 IN PFILE_NAME_INFORMATION PtrBuffer,
338 IN OUT PLONG PtrReturnedLength);
339
342 IN PFILE_NAME_INFORMATION PtrBuffer,
343 IN OUT PLONG PtrReturnedLength);
344
348 IN OUT PLONG PtrReturnedLength);
349
353 IN OUT PLONG PtrReturnedLength);
354
359 IN PFILE_BASIC_INFORMATION PtrBuffer);
360
362 IN PVCB Vcb,
364 IN BOOLEAN ForDel);
365
369 IN PVCB Vcb,
372
376 IN PVCB Vcb,
378 IN PtrUDFIrpContext PtrIrpContext,
379 IN PIRP Irp,
381
382extern NTSTATUS UDFSetEOF(
386 IN PVCB Vcb,
388 IN PIRP Irp,
390
395 IN PFILE_RENAME_INFORMATION PtrBuffer);
396
398 IN PVCB Vcb,
401 IN LONGLONG Id);
402
404 IN PVCB Vcb,
405 IN LONGLONG Id);
406
407#define UDFRemoveFileId__(Vcb, fi) \
408 UDFRemoveFileId(Vcb, UDFGetNTFileId(Vcb, fi, &(fi->Fcb->FCBName->ObjectName)));
409
411 IN PVCB Vcb);
412
414 IN PVCB Vcb,
415 IN LONGLONG Id,
416 OUT PUNICODE_STRING* FName,
417 OUT BOOLEAN* CaseSens);
418
419extern NTSTATUS UDFHardLink(
421 IN PtrUDFFCB Fcb1,
422 IN PtrUDFCCB Ccb1,
423 IN PFILE_OBJECT FileObject1, // Source File
424 IN PFILE_LINK_INFORMATION PtrBuffer);
425/*************************************************************************
426* Prototypes for the file flush.cpp
427*************************************************************************/
428extern NTSTATUS NTAPI UDFFlush(
429PDEVICE_OBJECT DeviceObject, // the logical volume device object
430PIRP Irp); // I/O Request Packet
431
433PtrUDFIrpContext PtrIrpContext,
434PIRP Irp);
435
439PIO_STATUS_BLOCK PtrIoStatus,
440IN ULONG FlushFlags = 0);
441
443IN PVCB Vcb,
445OUT PIO_STATUS_BLOCK PtrIoStatus,
446ULONG FlushFlags = 0);
447
449PtrUDFIrpContext PtrIrpContext,
450PIRP Irp,
451PVCB Vcb,
452ULONG FlushFlags = 0);
453
455PDEVICE_OBJECT PtrDeviceObject,
456PIRP Irp,
458
460IN PVCB Vcb,
461IN ULONG FlushFlags = 0);
462
464IN PVCB Vcb);
465
466/*************************************************************************
467* Prototypes for the file fscntrl.cpp
468*************************************************************************/
469
472PIRP Irp);
473
475PtrUDFIrpContext PtrIrpContext,
476PIRP Irp); // I/O Request Packet
477
479PtrUDFIrpContext PtrIrpContext,
480PIRP Irp);
481
483PtrUDFIrpContext PtrIrpContext,
484PIRP Irp);
485
487
489
491
493
495
497 IN PIRP Irp);
498
500 IN PIRP Irp);
501
503 IN PIRP Irp);
504
505extern NTSTATUS UDFLockVolume (IN PtrUDFIrpContext IrpContext,
506 IN PIRP Irp,
507 IN ULONG PID = -1);
508
510 IN PIRP Irp,
511 IN ULONG PID = -1);
512
514 IN PIRP Irp);
515
517 IN PIRP Irp);
518
520 IN PIRP Irp);
521
523 IN PIRP Irp,
524 IN ULONG Special);
525
527 IN PIRP Irp);
528
529/*************************************************************************
530* Prototypes for the file LockCtrl.cpp
531*************************************************************************/
532
534 IN PDEVICE_OBJECT DeviceObject, // the logical volume device object
535 IN PIRP Irp); // I/O Request Packet
536
538 IN PtrUDFIrpContext PtrIrpContext,
539 IN PIRP Irp);
540
546 ULONG Key,
551
557 ULONG Key,
560
566
570 ULONG Key,
573
574/*************************************************************************
575* Prototypes for the file misc.cpp
576*************************************************************************/
578VOID);
579
580extern VOID UDFDestroyZones(
581VOID);
582
584PIRP Irp); // the IRP sent to our dispatch routine
585
586extern long UDFExceptionFilter(
587PtrUDFIrpContext PtrIrpContext,
588PEXCEPTION_POINTERS PtrExceptionPointers);
589
591PtrUDFIrpContext PtrIrpContext,
592PIRP Irp);
593
594extern VOID UDFLogEvent(
595NTSTATUS UDFEventLogId, // the UDF private message id
596NTSTATUS RC); // any NT error code we wish to log ...
597
599VOID);
600
602PtrUDFObjectName PtrObjectName);
603
605VOID);
606
609
612
614VOID);
615
616/*extern VOID __fastcall UDFReleaseFCB(
617PtrUDFFCB Fcb);*/
618__inline
619VOID
622 )
623{
624 ASSERT(Fcb);
625
627
628 return;
629}
630
632PtrUDFFCB Fcb) ;
633
635PIRP Irp,
636PDEVICE_OBJECT PtrTargetDeviceObject);
637
639PtrUDFIrpContext PtrIrpContext);
640
642PtrUDFIrpContext PtrIrpContext,
643PIRP Irp);
644
646VOID *Context); // actually an IRPContext structure
647
649PDEVICE_OBJECT PtrVolumeDeviceObject,
650PDEVICE_OBJECT PtrTargetDeviceObject,
651PVPB PtrVPB);
652
653extern VOID
655 PVCB Vcb,
657 BOOLEAN UseCfg);
658
660 IN PVCB Vcb,
661 IN PCWSTR Name,
662 IN ULONG DefValue = 0);
663
664extern ULONG
666 IN PVCB Vcb,
667 IN PCWSTR Name,
668 IN ULONG DefValue
669 );
670
671extern VOID UDFReleaseVCB(
672 PVCB Vcb);
673
676 IN PCWSTR Name,
677 IN PUNICODE_STRING PtrVolumePath,
678 IN PCWSTR DefaultPath,
679 IN ULONG DefValue = 0);
680
682 OUT PtrUDFIrpContext *IrpContext,
683 IN PtrUDFIrpContextLite IrpContextLite);
684
686 OUT PtrUDFIrpContextLite *IrpContextLite,
687 IN PtrUDFIrpContext IrpContext,
689
690
692 PDEVICE_OBJECT DeviceObject, // the logical volume device object
693 PIRP Irp // I/O Request Packet
694 );
695
696extern ULONG
699 );
700
703 );
704
707 );
708
711 IN PWCACHE_ERROR_CONTEXT ErrorInfo
712 );
713
714/*************************************************************************
715* Prototypes for the file NameSup.cpp
716*************************************************************************/
717
718#include "namesup.h"
719
720/*************************************************************************
721* Prototypes for the file Udf_info\physical.cpp
722*************************************************************************/
723#if 0
724
725extern OSSTATUS UDFTRead(PVOID _Vcb,
726 PVOID Buffer, // Target buffer
728 ULONG LBA,
730 ULONG Flags = 0);
731
732extern OSSTATUS UDFTWrite(IN PVOID _Vcb,
733 IN PVOID Buffer, // Target buffer
735 IN ULONG LBA,
736 OUT PULONG WrittenBytes,
737 IN ULONG Flags = 0);
738
740 IN PVCB Vcb,
741 IN ULONG Lba,
742 IN ULONG BCount);
743
744extern OSSTATUS UDFReadDiscTrackInfo(PDEVICE_OBJECT DeviceObject, // the target device object
745 PVCB Vcb); // Volume Control Block for ^ DevObj
746
747extern OSSTATUS UDFReadAndProcessFullToc(PDEVICE_OBJECT DeviceObject, // the target device object
748 PVCB Vcb);
749
750extern OSSTATUS UDFUseStandard(PDEVICE_OBJECT DeviceObject, // the target device object
751 PVCB Vcb); // Volume control block fro this DevObj
752
753extern OSSTATUS UDFGetBlockSize(PDEVICE_OBJECT DeviceObject, // the target device object
754 PVCB Vcb); // Volume control block fro this DevObj
755
756extern OSSTATUS UDFGetDiskInfo(IN PDEVICE_OBJECT DeviceObject, // the target device object
757 IN PVCB Vcb); // Volume control block from this DevObj
758
760
762
763//extern OSSTATUS UDFPrepareForReadOperation(IN PVCB Vcb,
764// IN ULONG Lba);
765//#define UDFPrepareForReadOperation(a,b) (STATUS_SUCCESS)
766
768 ULONG LBA,
769 ULONG BCount,
770 OSSTATUS RC);
771
774 IN BOOLEAN Eject);
775
776// read physical sectors
777/*OSSTATUS UDFReadSectors(IN PVCB Vcb,
778 IN BOOLEAN Translate,// Translate Logical to Physical
779 IN ULONG Lba,
780 IN ULONG BCount,
781 IN BOOLEAN Direct,
782 OUT PCHAR Buffer,
783 OUT PULONG ReadBytes);*/
784#define UDFReadSectors(Vcb, Translate, Lba, BCount, Direct, Buffer, ReadBytes) \
785 (( WCacheIsInitialized__(&((Vcb)->FastCache)) && (KeGetCurrentIrql() < DISPATCH_LEVEL)) ? \
786 (WCacheReadBlocks__(&((Vcb)->FastCache), Vcb, Buffer, Lba, BCount, ReadBytes, Direct)) : \
787 (UDFTRead(Vcb, Buffer, ((SIZE_T)(BCount))<<((Vcb)->BlockSizeBits), Lba, ReadBytes, 0)))
788
789
790// read data inside physical sector
792 IN BOOLEAN Translate, // Translate Logical to Physical
793 IN ULONG Lba,
794 IN ULONG i, // offset in sector
795 IN ULONG l, // transfer length
796 IN BOOLEAN Direct,
799// read unaligned data
801 IN BOOLEAN Translate, // Translate Logical to Physical
804 IN BOOLEAN Direct,
807
808// write physical sectors
810 IN BOOLEAN Translate, // Translate Logical to Physical
811 IN ULONG Lba,
812 IN ULONG WBCount,
813 IN BOOLEAN Direct, // setting this flag delays flushing of given
814 // data to indefinite term
816 OUT PULONG WrittenBytes);
817// write directly to cached sector
819 IN BOOLEAN Translate, // Translate Logical to Physical
820 IN ULONG Lba,
821 IN ULONG i, // offset in sector
822 IN ULONG l, // transfer length
823 IN BOOLEAN Direct,
825 OUT PULONG WrittenBytes);
826// write data at unaligned offset & length
828 IN BOOLEAN Translate, // Translate Logical to Physical
831 IN BOOLEAN Direct, // setting this flag delays flushing of given
832 // data to indefinite term
834 OUT PULONG WrittenBytes);
835
839#endif
840/*************************************************************************
841* Prototypes for the file Pnp.cpp
842*************************************************************************/
844UDFPnp (
846 IN PIRP Irp
847 );
848
849/*************************************************************************
850* Prototypes for the file read.cpp
851*************************************************************************/
852extern OSSTATUS NTAPI UDFRead(
853 PDEVICE_OBJECT DeviceObject, // the logical volume device object
854 PIRP Irp); // I/O Request Packet
855
857 IN PtrUDFIrpContext PtrIrpContext,
858 IN PIRP Irp,
860
864
866 PtrUDFIrpContext PtrIrpContext,
867 PIRP Irp);
868
870 PtrUDFIrpContext PtrIrpContext,
871 PIRP Irp);
872
874 PtrUDFIrpContext PtrIrpContext,
875 PIRP Irp,
876 BOOLEAN IsReadOperation,
877 uint32 Length);
878
880 PtrUDFIrpContext PtrIrpContext,
881 PIRP Irp,
882 PVOID SystemBuffer);
883
884extern VOID UDFMdlComplete(
885 PtrUDFIrpContext PtrIrpContext,
886 PIRP Irp,
888 BOOLEAN ReadCompletion);
889
890/*************************************************************************
891* Prototypes for the file SecurSup.cpp
892*************************************************************************/
894PDEVICE_OBJECT DeviceObject, // the logical volume device object
895PIRP Irp); // I/O Request Packet
896
898PDEVICE_OBJECT DeviceObject, // the logical volume device object
899PIRP Irp); // I/O Request Packet
900
902PtrUDFIrpContext PtrIrpContext,
903PIRP Irp);
904
906PtrUDFIrpContext PtrIrpContext,
907PIRP Irp);
908
909extern NTSTATUS
911 IN PVCB Vcb,
913 IN PSECURITY_DESCRIPTOR* SecurityDesc);
914
915extern NTSTATUS
917 IN PVCB Vcb,
918 IN PFILE_OBJECT FileObject, // OPTIONAL
921
922extern VOID
925 IN BOOLEAN AutoInherited);
926
927extern NTSTATUS
929 IN PVCB Vcb,
931 IN PSECURITY_DESCRIPTOR* SecurityDesc);
932
933extern NTSTATUS
941
942extern NTSTATUS
950
951/*************************************************************************
952* Prototypes for the file Shutdown.cpp
953*************************************************************************/
955PDEVICE_OBJECT DeviceObject, // the logical volume device object
956PIRP Irp); // I/O Request Packet
957
959PtrUDFIrpContext PtrIrpContext,
960PIRP Irp);
961
962/*************************************************************************
963* Prototypes for the file Udf_dbg.cpp
964*************************************************************************/
965extern BOOLEAN
969 ULONG BugCheckId,
970 ULONG Line);
971
972extern BOOLEAN
976 ULONG BugCheckId,
977 ULONG Line);
978
979extern BOOLEAN
983 ULONG BugCheckId,
984 ULONG Line);
985
986extern VOID
990 ULONG BugCheckId,
991 ULONG Line);
992
993extern VOID
997 ULONG BugCheckId,
998 ULONG Line);
999
1000extern NTSTATUS
1004 ULONG BugCheckId,
1005 ULONG Line);
1006
1007extern VOID
1011 ULONG BugCheckId,
1012 ULONG Line);
1013
1014extern BOOLEAN
1017 IN BOOLEAN Wait,
1018 ULONG BugCheckId,
1019 ULONG Line);
1020
1021extern LONG
1023 IN PLONG addr,
1024 ULONG BugCheckId,
1025 ULONG Line);
1026
1027extern LONG
1029 IN PLONG addr,
1030 ULONG BugCheckId,
1031 ULONG Line);
1032
1033extern LONG
1035 IN PLONG addr,
1036 IN LONG i,
1037 ULONG BugCheckId,
1038 ULONG Line);
1039
1040/*************************************************************************
1041* Prototypes for the file UDFinit.cpp
1042*************************************************************************/
1043extern "C" NTSTATUS NTAPI DriverEntry(
1044PDRIVER_OBJECT DriverObject, // created by the I/O sub-system
1045PUNICODE_STRING RegistryPath); // path to the registry key
1046
1048PDRIVER_OBJECT DriverObject); // created by the I/O sub-system
1049
1050extern VOID NTAPI
1053
1054#ifndef WIN64
1055//extern ptrFsRtlNotifyVolumeEvent FsRtlNotifyVolumeEvent;
1056#endif //WIN64
1057
1058extern BOOLEAN
1060
1061extern BOOLEAN
1063
1064extern BOOLEAN
1066
1067/*************************************************************************
1068* Prototypes for the file verify.cpp
1069*************************************************************************/
1070
1071extern NTSTATUS UDFVerifyVcb (
1072 IN PtrUDFIrpContext IrpContext,
1073 IN PVCB Vcb
1074 );
1075
1077 IN PIRP Irp);
1078
1080 IN PtrUDFIrpContext IrpContext,
1081 IN PIRP Irp,
1083 );
1084
1086 IN PtrUDFIrpContext IrpContext,
1087 IN PVCB Vcb,
1088 IN BOOLEAN VcbAcquired
1089 );
1090
1091extern BOOLEAN UDFDismountVcb (
1092 IN PVCB Vcb,
1093 IN BOOLEAN VcbAcquired);
1094
1095extern NTSTATUS UDFCompareVcb(IN PVCB OldVcb,
1096 IN PVCB NewVcb,
1097 IN BOOLEAN PhysicalOnly);
1098
1099/*************************************************************************
1100* Prototypes for the file VolInfo.cpp
1101*************************************************************************/
1103 PIRP Irp);
1104
1105extern NTSTATUS UDFCommonQueryVolInfo (PtrUDFIrpContext PtrIrpContext,
1106 PIRP Irp);
1107
1108extern NTSTATUS NTAPI UDFSetVolInfo(PDEVICE_OBJECT DeviceObject, // the logical volume device object
1109 PIRP Irp); // I/O Request Packet
1110
1111extern NTSTATUS UDFCommonSetVolInfo(PtrUDFIrpContext PtrIrpContext,
1112 PIRP Irp);
1113
1114/*************************************************************************
1115* Prototypes for the file write.cpp
1116*************************************************************************/
1117extern NTSTATUS NTAPI UDFWrite(
1118PDEVICE_OBJECT DeviceObject, // the logical volume device object
1119PIRP Irp); // I/O Request Packet
1120
1122PtrUDFIrpContext PtrIrpContext,
1123PIRP Irp);
1124
1126VOID *Context1, // Should be PtrIrpContext
1127VOID *Context2); // Should be Irp
1128
1129extern VOID UDFPurgeCacheEx_(
1133//#ifndef ALLOW_SPARSE
1134BOOLEAN CanWait,
1135//#endif ALLOW_SPARSE
1136PVCB Vcb,
1138);
1139
1140/*#ifdef ALLOW_SPARSE
1141 #define UDFZeroDataEx(NtReqFcb, Offset, Length, CanWait) \
1142 UDFPurgeCacheEx_(NtReqFcb, Offset, Length)
1143 #define UDFPurgeCacheEx(NtReqFcb, Offset, Length, CanWait) \
1144 UDFPurgeCacheEx_(NtReqFcb, Offset, Length)
1145#else // ALLOW_SPARSE*/
1146 #define UDFZeroDataEx(NtReqFcb, Offset, Length, CanWait, Vcb, FileObject) \
1147 UDFPurgeCacheEx_(NtReqFcb, Offset, Length, CanWait, Vcb, FileObject)
1148 #define UDFPurgeCacheEx(NtReqFcb, Offset, Length, CanWait, Vcb, FileObject) \
1149 UDFPurgeCacheEx_(NtReqFcb, Offset, Length, CanWait, Vcb, FileObject)
1150//#endif //ALLOW_SPARSE
1151
1152
1153
1154#endif // _UDF_PROTOS_H_
DWORD Id
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
unsigned int uint32
Definition: types.h:32
BOOL Delete(LPCTSTR ServiceName)
Definition: delete.c:12
@ Update
Definition: registry.c:565
r l[0]
Definition: byte_order.h:168
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:160
_In_ PFCB Fcb
Definition: cdprocs.h:159
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
Definition: cdprocs.h:592
_Inout_ PIRP _In_ PDEVICE_OBJECT DeviceToVerify
Definition: cdprocs.h:1409
_Acquires_exclusive_lock_ Resource _Acquires_shared_lock_ Resource _Inout_ PERESOURCE Resource
Definition: cdprocs.h:843
Definition: bufpool.h:45
_In_ PIRP Irp
Definition: csq.h:116
#define NULL
Definition: types.h:112
DRIVER_INITIALIZE DriverEntry
Definition: condrv.c:21
_In_ PIO_STACK_LOCATION IrpSp
Definition: create.c:4137
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK _In_ USHORT ShareAccess
Definition: create.c:4147
PtrUDFCCB UDFAllocateCCB(VOID)
Definition: misc.cpp:707
PtrUDFObjectName UDFAllocateObjectName(VOID)
Definition: misc.cpp:611
PtrUDFFCB UDFAllocateFCB(VOID)
Definition: misc.cpp:854
static NTSTATUS ReadBytes(IN PDEVICE_OBJECT LowerDevice, OUT PUCHAR Buffer, IN ULONG BufferSize, OUT PULONG_PTR FilledBytes)
Definition: detect.c:67
#define OSSTATUS
Definition: env_spec_w32.h:57
ERESOURCE * PERESOURCE
Definition: env_spec_w32.h:595
BOOLEAN NTAPI UDFFastIoCopyWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.cpp:1160
#define NtReqFcb
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
Definition: fatprocs.h:2665
IN OUT PVCB IN PDEVICE_OBJECT TargetDeviceObject
Definition: fatprocs.h:1674
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
Definition: fatprocs.h:2714
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
Definition: fatprocs.h:2666
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
Definition: fatprocs.h:2713
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2711
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:49
enum _FAST_IO_POSSIBLE FAST_IO_POSSIBLE
GLenum const GLvoid * addr
Definition: glext.h:9621
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define MyFreePool__(addr)
Definition: mem_tools.h:152
#define ASSERT(a)
Definition: mode.c:44
#define __fastcall
Definition: sync.c:38
WORD unused[29]
Definition: crypt.c:1155
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:159
ULONG ACCESS_MASK
Definition: nt_native.h:40
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
@ Unlock
Definition: ntsecapi.h:294
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
void UDFUpdateNWA(PVCB Vcb, uint32 LBA, uint32 BCount, OSSTATUS RC)
Definition: phys_lib.cpp:3826
#define Vcb
Definition: cdprocs.h:1415
OSSTATUS UDFTWrite(IN void *_Vcb, IN void *Buffer, IN SIZE_T Length, IN uint32 LBA, OUT PSIZE_T WrittenBytes, IN uint32 Flags)
Definition: phys_lib.cpp:453
OSSTATUS UDFWriteSectors(IN PVCB Vcb, IN BOOLEAN Translate, IN uint32 Lba, IN uint32 BCount, IN BOOLEAN Direct, IN int8 *Buffer, OUT PSIZE_T WrittenBytes)
Definition: phys_lib.cpp:4012
OSSTATUS UDFWriteInSector(IN PVCB Vcb, IN BOOLEAN Translate, IN uint32 Lba, IN uint32 i, IN uint32 l, IN BOOLEAN Direct, OUT int8 *Buffer, OUT PSIZE_T WrittenBytes)
Definition: phys_lib.cpp:4063
OSSTATUS UDFReadAndProcessFullToc(PDEVICE_OBJECT DeviceObject, PVCB Vcb)
Definition: phys_lib.cpp:2243
OSSTATUS UDFWriteData(IN PVCB Vcb, IN BOOLEAN Translate, IN int64 Offset, IN SIZE_T Length, IN BOOLEAN Direct, IN int8 *Buffer, OUT PSIZE_T WrittenBytes)
Definition: phys_lib.cpp:4141
OSSTATUS UDFTRead(IN void *_Vcb, IN void *Buffer, IN SIZE_T Length, IN uint32 LBA, OUT PSIZE_T ReadBytes, IN uint32 Flags)
Definition: phys_lib.cpp:596
OSSTATUS UDFPrepareForWriteOperation(IN PVCB Vcb, IN uint32 Lba, IN uint32 BCount)
Definition: phys_lib.cpp:893
OSSTATUS UDFGetDiskInfo(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb)
Definition: phys_lib.cpp:3050
OSSTATUS UDFUseStandard(PDEVICE_OBJECT DeviceObject, PVCB Vcb)
Definition: phys_lib.cpp:2386
OSSTATUS UDFReadDiscTrackInfo(PDEVICE_OBJECT DeviceObject, PVCB Vcb)
Definition: phys_lib.cpp:1635
OSSTATUS UDFResetDeviceDriver(IN PVCB Vcb, IN PDEVICE_OBJECT TargetDeviceObject, IN BOOLEAN Unlock)
Definition: phys_lib.cpp:4199
OSSTATUS UDFGetBlockSize(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb)
Definition: phys_lib.cpp:2687
VOID NTAPI UDFEjectReqWaiter(IN PVOID Context)
OSSTATUS UDFDoDismountSequence(IN PVCB Vcb, IN PPREVENT_MEDIA_REMOVAL_USER_IN Buf, IN BOOLEAN Eject)
Definition: phys_eject.cpp:704
VOID UDFStopEjectWaiter(PVCB Vcb)
Definition: phys_eject.cpp:673
OSSTATUS UDFReadData(IN PVCB Vcb, IN BOOLEAN Translate, IN LONGLONG Offset, IN ULONG Length, IN BOOLEAN Direct, OUT PCHAR Buffer, OUT PSIZE_T ReadBytes)
OSSTATUS UDFReadInSector(IN PVCB Vcb, IN BOOLEAN Translate, IN ULONG Lba, IN ULONG i, IN ULONG l, IN BOOLEAN Direct, OUT PCHAR Buffer, OUT PSIZE_T ReadBytes)
NTSTATUS UDFExceptionHandler(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: misc.cpp:358
NTSTATUS UDFRemoveFileId(IN PVCB Vcb, IN LONGLONG Id)
Definition: fileinfo.cpp:2442
NTSTATUS NTAPI UDFQueryVolInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: volinfo.cpp:86
NTSTATUS UDFGetFileStreamInformation(IN PtrUDFFCB Fcb, IN PFILE_STREAM_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
Definition: fileinfo.cpp:930
__inline VOID UDFReleaseFCB(PtrUDFFCB Fcb)
Definition: protos.h:620
BOOLEAN UDFAcquireResourceExclusiveWithCheck(IN PERESOURCE Resource)
Definition: misc.cpp:2529
VOID UDFDeassignAcl(IN PtrUDFNTRequiredFCB NtReqFcb, IN BOOLEAN AutoInherited)
Definition: secursup.cpp:772
NTSTATUS UDFCompareVcb(IN PVCB OldVcb, IN PVCB NewVcb, IN BOOLEAN PhysicalOnly)
Definition: verfysup.cpp:849
BOOLEAN NTAPI UDFAcqReadAhead(IN PVOID Context, IN BOOLEAN Wait)
Definition: fastio.cpp:514
VOID UDFReadRegKeys(PVCB Vcb, BOOLEAN Update, BOOLEAN UseCfg)
Definition: misc.cpp:1780
ULONG UDFGetCfgParameter(IN PVCB Vcb, IN PCWSTR Name, IN ULONG DefValue)
Definition: misc.cpp:2000
NTSTATUS UDFCommonShutdown(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: shutdown.cpp:115
VOID __fastcall UDFCleanUpFCB(PtrUDFFCB Fcb)
Definition: misc.cpp:908
VOID NTAPI UDFDelayedClose(PVOID unused=NULL)
Definition: close.cpp:690
NTSTATUS UDFCloseAllXXXDelayedInDir(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN BOOLEAN System)
Definition: close.cpp:918
NTSTATUS UDFCommonQueryVolInfo(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: volinfo.cpp:149
NTSTATUS UDFPostRequest(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
NTSTATUS UDFVerifyVcb(IN PtrUDFIrpContext IrpContext, IN PVCB Vcb)
Definition: verfysup.cpp:37
VOID UDFCloseAllDelayed(PVCB Vcb)
NTSTATUS UDFIsPathnameValid(IN PtrUDFIrpContext IrpContext, IN PIRP Irp)
Definition: fscntrl.cpp:1660
NTSTATUS UDFGetEaInformation(PtrUDFIrpContext PtrIrpContext, IN PtrUDFFCB Fcb, IN PFILE_EA_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
Definition: fileinfo.cpp:801
VOID UDFFlushTryBreak(IN PVCB Vcb)
Definition: flush.cpp:625
BOOLEAN __fastcall UDFIsIrpTopLevel(PIRP Irp)
Definition: misc.cpp:228
NTSTATUS UDFSetBasicInformation(IN PtrUDFFCB Fcb, IN PtrUDFCCB Ccb, IN PFILE_OBJECT FileObject, IN PFILE_BASIC_INFORMATION PtrBuffer)
Definition: fileinfo.cpp:1013
NTSTATUS UDFCommonSetVolInfo(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: volinfo.cpp:666
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)
Definition: lockctrl.cpp:309
NTSTATUS NTAPI UDFFSControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: fscntrl.cpp:39
VOID NTAPI UDFCommonDispatch(VOID *Context)
VOID UDFDebugConvertExclusiveToSharedLite(IN PERESOURCE Resource, IN ERESOURCE_THREAD ResourceThreadId, ULONG BugCheckId, ULONG Line)
NTSTATUS NTAPI UDFDirControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: dircntrl.cpp:57
VOID UDFLogEvent(NTSTATUS UDFEventLogId, NTSTATUS RC)
Definition: misc.cpp:575
VOID UDFDestroyZones(VOID)
Definition: misc.cpp:177
NTSTATUS NTAPI UDFLockControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: lockctrl.cpp:38
NTSTATUS UDFRename(IN PIO_STACK_LOCATION IrpSp, IN PtrUDFFCB Fcb, IN PtrUDFCCB Ccb, IN PFILE_OBJECT FileObject, IN PFILE_RENAME_INFORMATION PtrBuffer)
Definition: fileinfo.cpp:1961
NTSTATUS NTAPI UDFUserFsCtrlRequest(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: fscntrl.cpp:178
OSSTATUS NTAPI UDFRead(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: read.cpp:53
NTSTATUS NTAPI UDFClose(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: close.cpp:62
NTSTATUS UDFPerformVerify(IN PtrUDFIrpContext IrpContext, IN PIRP Irp, IN PDEVICE_OBJECT DeviceToVerify)
Definition: verfysup.cpp:472
NTSTATUS NTAPI UDFWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: write.cpp:42
NTSTATUS NTAPI UDFFlush(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: flush.cpp:42
VOID NTAPI UDFFastIoRelCreateSec(IN PFILE_OBJECT FileObject)
Definition: fastio.cpp:387
NTSTATUS NTAPI UDFCommonDirControl(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: dircntrl.cpp:127
NTSTATUS UDFLockCallersBuffer(PtrUDFIrpContext PtrIrpContext, PIRP Irp, BOOLEAN IsReadOperation, uint32 Length)
Definition: read.cpp:936
NTSTATUS UDFReadSecurity(IN PVCB Vcb, IN PtrUDFFCB Fcb, IN PSECURITY_DESCRIPTOR *SecurityDesc)
Definition: secursup.cpp:420
BOOLEAN UDFDebugAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait, ULONG BugCheckId, ULONG Line)
NTSTATUS UDFGetInternalInformation(PtrUDFIrpContext PtrIrpContext, IN PtrUDFFCB Fcb, IN PtrUDFCCB Ccb, IN PFILE_INTERNAL_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
Definition: fileinfo.cpp:747
LONG UDFDebugInterlockedIncrement(IN PLONG addr, ULONG BugCheckId, ULONG Line)
VOID NTAPI UDFDriverUnload(IN PDRIVER_OBJECT DriverObject)
Definition: unload.cpp:10
VOID UDFMdlComplete(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN ReadCompletion)
Definition: read.cpp:1117
NTSTATUS UDFPostStackOverflowRead(IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp, IN PtrUDFFCB Fcb)
Definition: read.cpp:118
NTSTATUS NTAPI UDFCommonFSControl(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: fscntrl.cpp:103
NTSTATUS UDFCommonWrite(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: write.cpp:112
NTSTATUS UDFWriteSecurity(IN PVCB Vcb, IN PtrUDFFCB Fcb, IN PSECURITY_DESCRIPTOR *SecurityDesc)
Definition: secursup.cpp:796
VOID __fastcall UDFReleaseCCB(PtrUDFCCB Ccb)
Definition: misc.cpp:768
PVOID UDFGetCallersBuffer(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: read.cpp:871
NTSTATUS UDFCommonCreate(IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp)
NTSTATUS UDFGetStatistics(IN PtrUDFIrpContext IrpContext, IN PIRP Irp)
Definition: fscntrl.cpp:1601
NTSTATUS UDFSetAllocationInformation(IN PtrUDFFCB Fcb, IN PtrUDFCCB Ccb, IN PVCB Vcb, IN PFILE_OBJECT FileObject, IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp, IN PFILE_ALLOCATION_INFORMATION PtrBuffer)
Definition: fileinfo.cpp:1454
NTSTATUS NTAPI UDFFlushCompletion(PDEVICE_OBJECT PtrDeviceObject, PIRP Irp, PVOID Context)
Definition: flush.cpp:578
NTSTATUS UDFDebugInitializeResourceLite(IN PERESOURCE Resource, IN ERESOURCE_THREAD ResourceThreadId, ULONG BugCheckId, ULONG Line)
NTSTATUS NTAPI UDFDevIoctlCompletion(PDEVICE_OBJECT PtrDeviceObject, PIRP Irp, PVOID Context)
BOOLEAN UDFDismountVcb(IN PVCB Vcb, IN BOOLEAN VcbAcquired)
Definition: verfysup.cpp:727
LONG UDFDebugInterlockedDecrement(IN PLONG addr, ULONG BugCheckId, ULONG Line)
NTSTATUS UDFInitializeZones(VOID)
Definition: misc.cpp:41
VOID NTAPI UDFDeferredWriteCallBack(VOID *Context1, VOID *Context2)
NTSTATUS UDFUnlockCallersBuffer(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PVOID SystemBuffer)
Definition: read.cpp:1034
NTSTATUS UDFSetEOF(IN PIO_STACK_LOCATION PtrSp, IN PtrUDFFCB Fcb, IN PtrUDFCCB Ccb, IN PVCB Vcb, IN PFILE_OBJECT FileObject, IN PIRP Irp, IN PFILE_END_OF_FILE_INFORMATION PtrBuffer)
Definition: fileinfo.cpp:1627
NTSTATUS UDFQueueDelayedClose(PtrUDFIrpContext IrpContext, PtrUDFFCB Fcb)
Definition: close.cpp:1106
NTSTATUS UDFGetBasicInformation(IN PFILE_OBJECT FileObject, IN PtrUDFFCB Fcb, IN PFILE_BASIC_INFORMATION PtrBuffer, IN OUT LONG *PtrReturnedLength)
Definition: fileinfo.cpp:532
NTSTATUS UDFSetSecurity(PDEVICE_OBJECT DeviceObject, PIRP Irp)
NTSTATUS UDFCommonFileInfo(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: fileinfo.cpp:114
NTSTATUS UDFGetFullNameInformation(IN PFILE_OBJECT FileObject, IN PFILE_NAME_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
Definition: fileinfo.cpp:836
NTSTATUS UDFUnlockVolume(IN PtrUDFIrpContext IrpContext, IN PIRP Irp, IN ULONG PID=-1)
Definition: fscntrl.cpp:1859
NTSTATUS NTAPI UDFCleanup(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: cleanup.cpp:43
NTSTATUS UDFMarkStreamsForDeletion(IN PVCB Vcb, IN PtrUDFFCB Fcb, IN BOOLEAN ForDel)
Definition: fileinfo.cpp:1137
ULONG UDFGetRegParameter(IN PVCB Vcb, IN PCWSTR Name, IN ULONG DefValue=0)
Definition: misc.cpp:1986
NTSTATUS UDFSetAccessRights(PFILE_OBJECT FileObject, PACCESS_STATE AccessState, PtrUDFFCB Fcb, PtrUDFCCB Ccb, ACCESS_MASK DesiredAccess, USHORT ShareAccess)
Definition: secursup.cpp:1049
PtrUDFIrpContext UDFAllocateIrpContext(PIRP Irp, PDEVICE_OBJECT PtrTargetDeviceObject)
Definition: misc.cpp:985
VOID UDFReleaseIrpContext(PtrUDFIrpContext PtrIrpContext)
Definition: misc.cpp:1086
NTSTATUS NTAPI UDFDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: devcntrl.cpp:81
VOID UDFDebugDeleteResource(IN PERESOURCE Resource, IN ERESOURCE_THREAD ResourceThreadId, ULONG BugCheckId, ULONG Line)
NTSTATUS UDFGetSecurity(PDEVICE_OBJECT DeviceObject, PIRP Irp)
FAST_IO_POSSIBLE NTAPI UDFIsFastIoPossible(IN PtrUDFFCB Fcb)
Definition: fastio.cpp:118
NTSTATUS NTAPI UDFMountVolume(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
ULONG UDFCleanUpFcbChain(IN PVCB Vcb, IN PUDF_FILE_INFO fi, IN ULONG TreeLength, IN BOOLEAN VcbAcquired)
Definition: close.cpp:400
NTSTATUS UDFIsVolumeMounted(IN PtrUDFIrpContext IrpContext, IN PIRP Irp)
Definition: fscntrl.cpp:1552
LONG UDFDebugInterlockedExchangeAdd(IN PLONG addr, IN LONG i, ULONG BugCheckId, ULONG Line)
VOID NTAPI UDFRelReadAhead(IN PVOID Context)
Definition: fastio.cpp:558
NTSTATUS UDFCommonCleanup(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: cleanup.cpp:126
BOOLEAN UDFDebugAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait, ULONG BugCheckId, ULONG Line)
NTSTATUS NTAPI UDFQueryDirectory(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PIO_STACK_LOCATION IrpSp, PFILE_OBJECT FileObject, PtrUDFFCB Fcb, PtrUDFCCB Ccb)
Definition: dircntrl.cpp:216
NTSTATUS NTAPI UDFCommonLockControl(IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp)
Definition: lockctrl.cpp:105
NTSTATUS UDFGetNetworkInformation(IN PtrUDFFCB Fcb, IN PFILE_NETWORK_OPEN_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
Definition: fileinfo.cpp:676
BOOLEAN NTAPI UDFAcqLazyWrite(IN PVOID Context, IN BOOLEAN Wait)
Definition: fastio.cpp:423
NTSTATUS UDFOpenFile(IN PVCB Vcb, IN PFILE_OBJECT PtrNewFileObject, IN PtrUDFFCB PtrNewFcb)
ULONG UDFFlushADirectory(IN PVCB Vcb, IN PUDF_FILE_INFO FI, OUT PIO_STATUS_BLOCK PtrIoStatus, ULONG FlushFlags=0)
ULONG UDFIsResourceAcquired(IN PERESOURCE Resource)
Definition: misc.cpp:2518
VOID UDFPurgeCacheEx_(PtrUDFNTRequiredFCB NtReqFcb, LONGLONG Offset, LONGLONG Length, BOOLEAN CanWait, PVCB Vcb, PFILE_OBJECT FileObject)
Definition: write.cpp:1070
NTSTATUS UDFCommonClose(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: close.cpp:137
VOID UDFScanForDismountedVcb(IN PtrUDFIrpContext IrpContext)
Definition: fscntrl.cpp:1510
BOOLEAN UDFDebugAcquireSharedWaitForExclusive(IN PERESOURCE Resource, IN BOOLEAN Wait, ULONG BugCheckId, ULONG Line)
VOID UDFDebugReleaseResourceForThreadLite(IN PERESOURCE Resource, IN ERESOURCE_THREAD ResourceThreadId, ULONG BugCheckId, ULONG Line)
NTSTATUS UDFCommonSetSecurity(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
VOID __fastcall UDFCleanUpCCB(PtrUDFCCB Ccb)
Definition: misc.cpp:805
NTSTATUS UDFVerifyVolume(IN PIRP Irp)
Definition: verfysup.cpp:158
NTSTATUS UDFGetStandardInformation(IN PtrUDFFCB Fcb, IN PFILE_STANDARD_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
BOOLEAN NTAPI UDFFastIoQueryStdInfo(IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.cpp:250
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)
Definition: lockctrl.cpp:205
BOOLEAN NTAPI UDFFastUnlockAllByKey(IN PFILE_OBJECT FileObject, PEPROCESS ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: lockctrl.cpp:494
VOID __fastcall UDFReleaseObjectName(PtrUDFObjectName PtrObjectName)
Definition: misc.cpp:670
VOID NTAPI UDFFsNotification(IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN FsActive)
Definition: udfinit.cpp:779
NTSTATUS NTAPI UDFNotifyChangeDirectory(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PIO_STACK_LOCATION IrpSp, PFILE_OBJECT FileObject, PtrUDFFCB Fcb, PtrUDFCCB Ccb)
Definition: dircntrl.cpp:683
NTSTATUS UDFGetRetrievalPointers(IN PtrUDFIrpContext IrpContext, IN PIRP Irp, IN ULONG Special)
Definition: fscntrl.cpp:2205
NTSTATUS UDFCheckAccessRights(PFILE_OBJECT FileObject, PACCESS_STATE AccessState, PtrUDFFCB Fcb, PtrUDFCCB Ccb, ACCESS_MASK DesiredAccess, USHORT ShareAccess)
Definition: secursup.cpp:927
NTSTATUS UDFCompleteMount(IN PVCB Vcb)
Definition: fscntrl.cpp:913
BOOLEAN UDFAcquireResourceSharedWithCheck(IN PERESOURCE Resource)
Definition: misc.cpp:2556
NTSTATUS NTAPI UDFShutdown(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: shutdown.cpp:47
ULONG UDFFlushLogicalVolume(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PVCB Vcb, ULONG FlushFlags=0)
NTSTATUS UDFIsVolumeDirty(IN PtrUDFIrpContext IrpContext, IN PIRP Irp)
Definition: fscntrl.cpp:2367
VOID UDFInitializeIrpContextFromLite(OUT PtrUDFIrpContext *IrpContext, IN PtrUDFIrpContextLite IrpContextLite)
Definition: misc.cpp:2419
NTSTATUS UDFAssignAcl(IN PVCB Vcb, IN PFILE_OBJECT FileObject, IN PtrUDFFCB Fcb, IN PtrUDFNTRequiredFCB NtReqFcb)
Definition: secursup.cpp:706
ULONG UDFRegCheckParameterValue(IN PUNICODE_STRING RegistryPath, IN PCWSTR Name, IN PUNICODE_STRING PtrVolumePath, IN PCWSTR DefaultPath, IN ULONG DefValue=0)
Definition: misc.cpp:2225
NTSTATUS UDFStoreFileId(IN PVCB Vcb, IN PtrUDFCCB Ccb, IN PUDF_FILE_INFO fi, IN LONGLONG Id)
Definition: fileinfo.cpp:2417
VOID NTAPI UDFRelLazyWrite(IN PVOID Context)
Definition: fastio.cpp:472
NTSTATUS UDFCommonRead(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: read.cpp:229
NTSTATUS UDFPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: pnp.cpp:81
NTSTATUS NTAPI UDFCommonDeviceControl(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: devcntrl.cpp:149
NTSTATUS UDFStartEjectWaiter(IN PVCB Vcb)
Definition: fscntrl.cpp:850
BOOLEAN UDFCheckForDismount(IN PtrUDFIrpContext IrpContext, IN PVCB Vcb, IN BOOLEAN VcbAcquired)
Definition: verfysup.cpp:629
NTSTATUS NTAPI UDFCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
VOID NTAPI UDFFastIoAcqCreateSec(IN PFILE_OBJECT FileObject)
Definition: fastio.cpp:342
BOOLEAN UDFFlushIsBreaking(IN PVCB Vcb, IN ULONG FlushFlags=0)
Definition: flush.cpp:605
NTSTATUS UDFDismountVolume(IN PtrUDFIrpContext IrpContext, IN PIRP Irp)
Definition: fscntrl.cpp:1942
VOID UDFReleaseVCB(PVCB Vcb)
Definition: misc.cpp:2137
NTSTATUS UDFCloseFileInfoChain(IN PVCB Vcb, IN PUDF_FILE_INFO fi, IN ULONG TreeLength, IN BOOLEAN VcbAcquired)
Definition: cleanup.cpp:696
ULONG UDFFlushAFile(PtrUDFFCB Fcb, PtrUDFCCB Ccb, PIO_STATUS_BLOCK PtrIoStatus, IN ULONG FlushFlags=0)
VOID NTAPI UDFStackOverflowRead(IN PVOID Context, IN PKEVENT Event)
Definition: read.cpp:185
BOOLEAN UDFGetTrialEnd(PULONG iTrial)
BOOLEAN NTAPI UDFFastUnlockAll(IN PFILE_OBJECT FileObject, PEPROCESS ProcessId, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: lockctrl.cpp:404
NTSTATUS NTAPI UDFHandleQueryPath(PVOID BufferPointer)
NTSTATUS UDFGetPositionInformation(IN PFILE_OBJECT FileObject, IN PFILE_POSITION_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
Definition: fileinfo.cpp:910
BOOLEAN NTAPI UDFFastIoQueryBasicInfo(IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.cpp:159
NTSTATUS UDFInvalidateVolumes(IN PtrUDFIrpContext IrpContext, IN PIRP Irp)
Definition: fscntrl.cpp:2441
BOOLEAN NTAPI UDFFastIoCheckIfPossible(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN BOOLEAN CheckForReadOperation, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.cpp:42
NTSTATUS UDFGetOpenParamsByFileId(IN PVCB Vcb, IN LONGLONG Id, OUT PUNICODE_STRING *FName, OUT BOOLEAN *CaseSens)
Definition: fileinfo.cpp:2472
NTSTATUS UDFWCacheErrorHandler(IN PVOID Context, IN PWCACHE_ERROR_CONTEXT ErrorInfo)
Definition: misc.cpp:2583
BOOLEAN UDFDebugAcquireSharedStarveExclusive(IN PERESOURCE Resource, IN BOOLEAN Wait, ULONG BugCheckId, ULONG Line)
BOOLEAN UDFGetInstallVersion(PULONG iVer)
long UDFExceptionFilter(PtrUDFIrpContext PtrIrpContext, PEXCEPTION_POINTERS PtrExceptionPointers)
Definition: misc.cpp:265
VOID UDFReleaseFileIdCache(IN PVCB Vcb)
Definition: fileinfo.cpp:2456
NTSTATUS NTAPI UDFQuerySetEA(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: misc.cpp:2484
VOID UDFCleanupVCB(IN PVCB Vcb)
Definition: fscntrl.cpp:1428
NTSTATUS NTAPI UDFFileInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: fileinfo.cpp:46
NTSTATUS UDFInitializeIrpContextLite(OUT PtrUDFIrpContextLite *IrpContextLite, IN PtrUDFIrpContext IrpContext, IN PtrUDFFCB Fcb)
Definition: misc.cpp:2457
NTSTATUS UDFSetDispositionInformation(IN PtrUDFFCB Fcb, IN PtrUDFCCB Ccb, IN PVCB Vcb, IN PFILE_OBJECT FileObject, IN BOOLEAN Delete)
Definition: fileinfo.cpp:1340
NTSTATUS UDFCommonFlush(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
Definition: flush.cpp:110
BOOLEAN UDFGetInstallTime(PULONG iTime)
NTSTATUS UDFInitializeFCB(IN PtrUDFFCB PtrNewFcb, IN PVCB Vcb, IN PtrUDFObjectName PtrObjectName, IN ULONG Flags, IN PFILE_OBJECT FileObject)
Definition: create.cpp:2517
NTSTATUS UDFFirstOpenFile(IN PVCB Vcb, IN PFILE_OBJECT PtrNewFileObject, OUT PtrUDFFCB *PtrNewFcb, IN PUDF_FILE_INFO RelatedFileInfo, IN PUDF_FILE_INFO NewFileInfo, IN PUNICODE_STRING LocalPath, IN PUNICODE_STRING CurName)
Definition: create.cpp:2281
NTSTATUS UDFLockVolume(IN PtrUDFIrpContext IrpContext, IN PIRP Irp, IN ULONG PID=-1)
Definition: fscntrl.cpp:1724
NTSTATUS UDFHardLink(IN PIO_STACK_LOCATION PtrSp, IN PtrUDFFCB Fcb1, IN PtrUDFCCB Ccb1, IN PFILE_OBJECT FileObject1, IN PFILE_LINK_INFORMATION PtrBuffer)
Definition: fileinfo.cpp:2494
NTSTATUS UDFGetAltNameInformation(IN PtrUDFFCB Fcb, IN PFILE_NAME_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
Definition: fileinfo.cpp:869
NTSTATUS NTAPI UDFSetVolInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: volinfo.cpp:617
NTSTATUS UDFCommonGetSecurity(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
NTSTATUS UDFGetVolumeBitmap(IN PtrUDFIrpContext IrpContext, IN PIRP Irp)
Definition: fscntrl.cpp:2069
VOID UDFCloseResidual(IN PVCB Vcb)
Definition: fscntrl.cpp:1349
NTSTATUS UDFInitializeVCB(PDEVICE_OBJECT PtrVolumeDeviceObject, PDEVICE_OBJECT PtrTargetDeviceObject, PVPB PtrVPB)
VOID NTAPI UDFInitializeFunctionPointers(PDRIVER_OBJECT DriverObject)
Definition: udfinit.cpp:444
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
Definition: ncftp.h:79
Definition: cdstruc.h:498
Definition: iotypes.h:189
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT Context1
Definition: tdikrnl.h:1095
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT _In_ PTDI_PNP_CONTEXT Context2
Definition: tdikrnl.h:1096
uint32_t * PULONG
Definition: typedefs.h:59
const uint16_t * PCWSTR
Definition: typedefs.h:57
int64_t LONGLONG
Definition: typedefs.h:68
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
int32_t * PLONG
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
char * PCHAR
Definition: typedefs.h:51
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_ ERESOURCE_THREAD ResourceThreadId
Definition: exfuncs.h:1052
ULONG_PTR ERESOURCE_THREAD
Definition: extypes.h:208
_In_ BOOLEAN FsActive
Definition: iotypes.h:7360
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
Definition: iotypes.h:1598
* PFILE_OBJECT
Definition: iotypes.h:1998
_In_ PLARGE_INTEGER EndingOffset
Definition: iotypes.h:1597
_In_opt_ PVOID _In_opt_ PUNICODE_STRING _In_ PSECURITY_DESCRIPTOR _In_ PACCESS_STATE AccessState
Definition: sefuncs.h:417