7 #ifndef __UDF_STRUCT_SUPPORT_H__ 8 #define __UDF_STRUCT_SUPPORT_H__ 75 #define HASH_POSIX 0x01 76 #define HASH_ULFN 0x02 79 #define HASH_KEEP_NAME 0x08 // keep DOS '.' and '..' intact 119 if(!DirInfo->Dloc->DirIndex)
172 #ifdef UDF_TRACK_EXTENT_TO_MAPPING
178 #ifdef UDF_TRACK_EXTENT_TO_MAPPING 179 #define UDFExtentToMapping(e) UDFExtentToMapping_(e, UDF_BUG_CHECK_ID, __LINE__) 180 #else //UDF_TRACK_EXTENT_TO_MAPPING 181 #define UDFExtentToMapping(e) UDFExtentToMapping_(e) 182 #endif //UDF_TRACK_EXTENT_TO_MAPPING 217 #define UDFDOSName__(Vcb, DosName, UdfName, FileInfo) \ 218 UDFDOSName(Vcb, DosName, UdfName, (FileInfo) && ((FileInfo)->Index < 2)); 261 #ifdef UDF_CHECK_DISK_ALLOCATION 263 void UDFCheckSpaceAllocation_(
IN PVCB Vcb,
266 #ifdef UDF_TRACK_ONDISK_ALLOCATION
273 #ifdef UDF_TRACK_ONDISK_ALLOCATION 274 #define UDFCheckSpaceAllocation(Vcb, FileInfo, Map, asXXX) \ 275 UDFCheckSpaceAllocation_(Vcb, Map, asXXX, (uint32)FileInfo, UDF_BUG_CHECK_ID,__LINE__); 276 #else //UDF_TRACK_ONDISK_ALLOCATION 277 #define UDFCheckSpaceAllocation(Vcb, FileInfo, Map, asXXX) \ 278 UDFCheckSpaceAllocation_(Vcb, Map, asXXX); 279 #endif //UDF_TRACK_ONDISK_ALLOCATION 280 #else // UDF_CHECK_DISK_ALLOCATION 281 #define UDFCheckSpaceAllocation(Vcb, FileInfo, Map, asXXX) {;} 282 #endif //UDF_CHECK_DISK_ALLOCATION 291 #ifdef UDF_TRACK_ONDISK_ALLOCATION
298 #ifdef UDF_TRACK_ONDISK_ALLOCATION 299 #define UDFMarkSpaceAsXXXNoProtect(Vcb, FileInfo, Map, asXXX) \ 300 UDFMarkSpaceAsXXXNoProtect_(Vcb, Map, asXXX, (uint32)FileInfo, UDF_BUG_CHECK_ID,__LINE__); 301 #else //UDF_TRACK_ONDISK_ALLOCATION 302 #define UDFMarkSpaceAsXXXNoProtect(Vcb, FileInfo, Map, asXXX) \ 303 UDFMarkSpaceAsXXXNoProtect_(Vcb, Map, asXXX); 304 #endif //UDF_TRACK_ONDISK_ALLOCATION 311 #ifdef UDF_TRACK_ONDISK_ALLOCATION
318 #ifdef UDF_TRACK_ONDISK_ALLOCATION 319 #define UDFMarkSpaceAsXXX(Vcb, FileInfo, Map, asXXX) \ 320 UDFMarkSpaceAsXXX_(Vcb, Map, asXXX, (uint32)FileInfo, UDF_BUG_CHECK_ID,__LINE__); 321 #else //UDF_TRACK_ONDISK_ALLOCATION 322 #define UDFMarkSpaceAsXXX(Vcb, FileInfo, Map, asXXX) \ 323 UDFMarkSpaceAsXXX_(Vcb, Map, asXXX); 324 #endif //UDF_TRACK_ONDISK_ALLOCATION 328 #define AS_DISCARDED 0x02 338 #ifdef UDF_TRACK_ALLOC_FREE_EXTENT
344 #ifdef UDF_TRACK_ALLOC_FREE_EXTENT 345 #define UDFAllocFreeExtent(v, l, ss, sl, e, af) UDFAllocFreeExtent_(v, l, ss, sl, e, af, UDF_BUG_CHECK_ID, __LINE__) 346 #else //UDF_TRACK_ALLOC_FREE_EXTENT 347 #define UDFAllocFreeExtent(v, l, ss, sl, e, af) UDFAllocFreeExtent_(v, l, ss, sl, e, af) 348 #endif //UDF_TRACK_ALLOC_FREE_EXTENT 355 #define UDF_PREALLOC_CLASS_FE 0x00 356 #define UDF_PREALLOC_CLASS_DIR 0x01 388 #ifndef UDF_READ_ONLY_BUILD 393 #endif //UDF_READ_ONLY_BUILD 395 #define FLUSH_FE_KEEP FALSE 396 #define FLUSH_FE_FOR_DEL TRUE 445 #define UDF_FSPACE_BM 0x00 446 #define UDF_ZSPACE_BM 0x01 503 #define UDFMarkAllocatedAsNotAllocated(Vcb, Off, Len, Ext) \ 504 UDFMarkAllocatedAsNotXXX(Vcb, Off, Len, Ext, TRUE) 516 #define UDFMarkRecordedAsAllocated(Vcb, Off, Len, Ext) \ 517 UDFMarkAllocatedAsNotXXX(Vcb, Off, Len, Ext, FALSE) 539 #define UDFZeroExtent__(Vcb, Ext, Off, Len, Dir, WB) \ 540 UDFZeroExtent(Vcb, Ext, Off, Len, FALSE, Dir, WB) 542 #define UDFSparseExtent__(Vcb, Ext, Off, Len, Dir, WB) \ 543 UDFZeroExtent(Vcb, Ext, Off, Len, TRUE, Dir, WB) 580 #define UDFIncFileLinkCount(fi) UDFChangeFileLinkCount(fi, TRUE) 581 #define UDFDecFileLinkCount(fi) UDFChangeFileLinkCount(fi, FALSE) 589 #ifdef UDF_CHECK_UTIL 596 #endif //UDF_CHECK_UTIL 598 #define UDFSetEntityID_imp(eID, Str) \ 599 UDFSetEntityID_imp_(eID, (uint8*)(Str), sizeof(Str)); 614 #define UDFIncFileCounter(Vcb) UDFChangeFileCounter(Vcb, TRUE, TRUE); 615 #define UDFDecFileCounter(Vcb) UDFChangeFileCounter(Vcb, TRUE, FALSE); 616 #define UDFIncDirCounter(Vcb) UDFChangeFileCounter(Vcb, FALSE, TRUE); 617 #define UDFDecDirCounter(Vcb) UDFChangeFileCounter(Vcb, FALSE, FALSE); 648 #define UDF_FREE_NOTHING 0x00 649 #define UDF_FREE_FILEINFO 0x01 650 #define UDF_FREE_DLOC 0x02 767 #ifndef UDF_READ_ONLY_BUILD 774 #endif //UDF_READ_ONLY_BUILD 788 #define UDFIsDeleted(DirNdx) \ 789 (((DirNdx)->FileCharacteristics & FILE_DELETED) ? TRUE : FALSE) 792 #define UDFIsADirectory(FileInfo) \ 793 (((FileInfo) && ((FileInfo)->Dloc) && ((FileInfo)->Dloc->DirIndex || ((FileInfo)->FileIdent && ((FileInfo)->FileIdent->fileCharacteristics & FILE_DIRECTORY)))) ? TRUE : FALSE) 797 #define UDFGetFileAllocationSize(Vcb, FileInfo) \ 798 (((FileInfo)->Dloc->DataLoc.Mapping) ? UDFGetExtentLength((FileInfo)->Dloc->DataLoc.Mapping) : Vcb->LBlockSize) 814 #define UDFIsFlushed(FI) \ 816 !(FI->Dloc->FE_Flags & UDF_FE_FLAG_FE_MODIFIED) && \ 817 !(FI->Dloc->DataLoc.Modified) && \ 818 !(FI->Dloc->AllocLoc.Modified) &&\ 819 !(FI->Dloc->FELoc.Modified) && \ 820 !(UDFGetDirIndexByFileInfo(FI)[FI->Index].FI_Flags & UDF_FI_FLAG_FI_MODIFIED) ) 839 #define UDFIsFileCached__(Vcb, FileInfo, Offset, Length, ForWrite) \ 840 (UDFIsExtentCached(Vcb, &((FileInfo)->Dloc->DataLoc), Offset, Length, ForWrite)) 884 #define UDFGetLVIDiUse(Vcb) \ 885 ( ((Vcb) && (Vcb)->LVid) ? \ 886 ( (LogicalVolIntegrityDescImpUse*) \ 887 ( ((int8*)(Vcb->LVid+1)) + \ 888 Vcb->LVid->numOfPartitions*2*sizeof(uint32))) \ 998 #define UDFIsAStreamDir(FI) ((FI) && ((FI)->Dloc) && ((FI)->Dloc->FE_Flags & UDF_FE_FLAG_IS_SDIR)) 1000 #define UDFHasAStreamDir(FI) ((FI) && ((FI)->Dloc) && ((FI)->Dloc->FE_Flags & UDF_FE_FLAG_HAS_SDIR)) 1002 #define UDFIsAStream(FI) ((FI) && UDFIsAStreamDir((FI)->ParentFile)) 1004 #define UDFIsSDirDeleted(FI) ((FI) && (FI)->Dloc && ((FI)->Dloc->FE_Flags & UDF_FE_FLAG_IS_DEL_SDIR)) 1028 #define UDFGetPartNumByPartNdx(Vcb, pi) (Vcb->Partitions[pi].PartitionNum) 1037 #define UDFStreamsSupported(Vcb) \ 1038 (Vcb->maxUDFWriteRev >= 0x0200) 1040 #define UDFNtAclSupported(Vcb) \ 1041 (Vcb->maxUDFWriteRev >= 0x0200) 1043 #define UDFReferenceFile__(fi) \ 1045 UDFInterlockedIncrement((PLONG)&((fi)->RefCount)); \ 1046 UDFInterlockedIncrement((PLONG)&((fi)->Dloc->LinkRefCount)); \ 1047 if((fi)->ParentFile) { \ 1048 UDFInterlockedIncrement((PLONG)&((fi)->ParentFile->OpenCount)); \ 1052 #define UDFReferenceFileEx__(fi,i) \ 1054 UDFInterlockedExchangeAdd((PLONG)&((fi)->RefCount),i); \ 1055 UDFInterlockedExchangeAdd((PLONG)&((fi)->Dloc->LinkRefCount),i); \ 1056 if((fi)->ParentFile) { \ 1057 UDFInterlockedExchangeAdd((PLONG)&((fi)->ParentFile->OpenCount),i); \ 1061 #define UDFDereferenceFile__(fi) \ 1063 UDFInterlockedDecrement((PLONG)&((fi)->RefCount)); \ 1064 UDFInterlockedDecrement((PLONG)&((fi)->Dloc->LinkRefCount)); \ 1065 if((fi)->ParentFile) { \ 1066 UDFInterlockedDecrement((PLONG)&((fi)->ParentFile->OpenCount)); \ 1070 #define UDFIsDirEmpty__(fi) UDFIsDirEmpty((fi)->Dloc->DirIndex) 1071 #define UDFIsDirOpened__(fi) (fi->OpenCount) 1073 #define UDFSetFileAllocMode__(fi, mode) \ 1075 (fi)->Dloc->DataLoc.Flags = \ 1076 ((fi)->Dloc->DataLoc.Flags & ~EXTENT_FLAG_ALLOC_MASK) | (mode & EXTENT_FLAG_ALLOC_MASK); \ 1079 #define UDFGetFileAllocMode__(fi) ((fi)->Dloc->DataLoc.Flags & EXTENT_FLAG_ALLOC_MASK) 1081 #define UDFGetFileICBAllocMode__(fi) (((PFILE_ENTRY)((fi)->Dloc->FileEntry))->icbTag.flags & ICB_FLAG_ALLOC_MASK) 1083 #ifndef UDF_LIMIT_DIR_SIZE // release 1084 #define UDF_DIR_INDEX_FRAME_SH 9 1086 #define UDF_DIR_INDEX_FRAME_SH 7 1089 #define UDF_DIR_INDEX_FRAME ((uint_di)(1 << UDF_DIR_INDEX_FRAME_SH)) 1091 #define UDF_DIR_INDEX_FRAME_GRAN (32) 1092 #define UDF_DIR_INDEX_FRAME_GRAN_MASK (UDF_DIR_INDEX_FRAME_GRAN-1) 1093 #define AlignDirIndex(n) ((n+UDF_DIR_INDEX_FRAME_GRAN_MASK) & ~(UDF_DIR_INDEX_FRAME_GRAN_MASK)) 1095 #if defined _X86_ && !defined UDF_LIMIT_DIR_SIZE 1104 #else // NO X86 optimization , use generic C/C++ 1108 #ifdef UDF_LIMIT_DIR_SIZE 1109 if( hDirNdx && (i < hDirNdx->LastFrameCount))
1111 #else //UDF_LIMIT_DIR_SIZE 1117 #endif // UDF_LIMIT_DIR_SIZE 1122 #define UDFDirIndexGetLastIndex(di) ((((di)->FrameCount - 1) << UDF_DIR_INDEX_FRAME_SH) + (di)->LastFrameCount) 1128 #define CheckAddr(addr) {ASSERT((uint32)(addr) > 0x1000);} 1130 #define CheckAddr(addr) {ASSERT((uint32)(addr) & 0x80000000);} 1133 #define UDFGetBit(arr, bit) UDFGetBit__((uint32*)(arr), bit) 1142 #define UDFSetBit(arr, bit) UDFSetBit__((uint32*)(arr), bit) 1151 #define UDFSetBits(arr, bit, bc) UDFSetBits__((uint32*)(arr), bit, bc) 1160 #define UDFClrBit(arr, bit) UDFClrBit__((uint32*)(arr), bit) 1169 #define UDFClrBits(arr, bit, bc) UDFClrBits__((uint32*)(arr), bit, bc) 1178 #else // NO X86 optimization , use generic C/C++ 1180 #define UDFGetBit(arr, bit) ( (BOOLEAN) ( ((((uint32*)(arr))[(bit)>>5]) >> ((bit)&31)) &1 ) ) 1181 #define UDFSetBit(arr, bit) ( (((uint32*)(arr))[(bit)>>5]) |= (((uint32)1) << ((bit)&31)) ) 1182 #define UDFClrBit(arr, bit) ( (((uint32*)(arr))[(bit)>>5]) &= (~(((uint32)1) << ((bit)&31))) ) 1184 #define UDFSetBits(arr, bit, bc) \ 1186 for(j=0;j<bc;j++) { \ 1187 UDFSetBit(arr, (bit)+j); \ 1190 #define UDFClrBits(arr, bit, bc) \ 1192 for(j=0;j<bc;j++) { \ 1193 UDFClrBit(arr, (bit)+j); \ 1198 #define UDFGetUsedBit(arr,bit) (!UDFGetBit(arr,bit)) 1199 #define UDFGetFreeBit(arr,bit) UDFGetBit(arr,bit) 1200 #define UDFSetUsedBit(arr,bit) UDFClrBit(arr,bit) 1201 #define UDFSetFreeBit(arr,bit) UDFSetBit(arr,bit) 1202 #define UDFSetUsedBits(arr,bit,bc) UDFClrBits(arr,bit,bc) 1203 #define UDFSetFreeBits(arr,bit,bc) UDFSetBits(arr,bit,bc) 1205 #define UDFGetBadBit(arr,bit) UDFGetBit(arr,bit) 1207 #define UDFGetZeroBit(arr,bit) UDFGetBit(arr,bit) 1208 #define UDFSetZeroBit(arr,bit) UDFSetBit(arr,bit) 1209 #define UDFClrZeroBit(arr,bit) UDFClrBit(arr,bit) 1210 #define UDFSetZeroBits(arr,bit,bc) UDFSetBits(arr,bit,bc) 1211 #define UDFClrZeroBits(arr,bit,bc) UDFClrBits(arr,bit,bc) 1213 #if defined UDF_DBG || defined _CONSOLE 1214 #ifdef UDF_TRACK_ONDISK_ALLOCATION_OWNERS 1215 #define UDFSetFreeBitOwner(Vcb, i) (Vcb)->FSBM_Bitmap_owners[i] = 0; 1216 #define UDFSetUsedBitOwner(Vcb, i, o) (Vcb)->FSBM_Bitmap_owners[i] = o; 1217 #define UDFGetUsedBitOwner(Vcb, i) ((Vcb)->FSBM_Bitmap_owners[i]) 1218 #define UDFCheckUsedBitOwner(Vcb, i, o) { \ 1219 ASSERT(i<(Vcb)->FSBM_BitCount); \ 1220 if((Vcb)->FSBM_Bitmap_owners[i] != -1) { \ 1221 ASSERT((Vcb)->FSBM_Bitmap_owners[i] == o); \ 1223 ASSERT((Vcb)->FSBM_Bitmap_owners[i] != 0); \ 1224 (Vcb)->FSBM_Bitmap_owners[i] = o; \ 1227 #define UDFCheckFreeBitOwner(Vcb, i) ASSERT((Vcb)->FSBM_Bitmap_owners[i] == 0); 1229 #define UDFSetFreeBitOwner(Vcb, i) 1230 #define UDFSetUsedBitOwner(Vcb, i, o) 1231 #define UDFCheckUsedBitOwner(Vcb, i, o) 1232 #define UDFCheckFreeBitOwner(Vcb, i) 1233 #endif //UDF_TRACK_ONDISK_ALLOCATION_OWNERS 1235 #define UDFSetFreeBitOwner(Vcb, i) 1236 #define UDFSetUsedBitOwner(Vcb, i, o) 1237 #define UDFCheckUsedBitOwner(Vcb, i, o) 1238 #define UDFCheckFreeBitOwner(Vcb, i) 1241 #ifdef UDF_TRACK_FS_STRUCTURES 1249 #else //UDF_TRACK_FS_STRUCTURES 1250 #define UDFRegisterFsStructure(Vcb, Lba, Length) {NOTHING;} 1251 #endif //UDF_TRACK_FS_STRUCTURES 1255 #define UDF_MAX_VERIFY_CACHE (8*1024*1024/2048) 1256 #define UDF_VERIFY_CACHE_LOW (4*1024*1024/2048) 1257 #define UDF_VERIFY_CACHE_GRAN (512*1024/2048) 1258 #define UDF_SYS_CACHE_STOP_THR (10*1024*1024/2048) 1270 #define PH_FORGET_VERIFIED 0x00800000 1271 #define PH_READ_VERIFY_CACHE 0x00400000 1272 #define PH_KEEP_VERIFY_CACHE 0x00200000 1302 #define UFD_VERIFY_FLAG_FORCE 0x01 1303 #define UFD_VERIFY_FLAG_WAIT 0x02 1304 #define UFD_VERIFY_FLAG_BG 0x04 1305 #define UFD_VERIFY_FLAG_LOCKED 0x10 1325 if(!
Vcb->VerifyCtx.VInited)
1338 #endif // __UDF_STRUCT_SUPPORT_H__ OSSTATUS UDFStoreDloc(IN PVCB Vcb, IN PUDF_FILE_INFO fi, IN uint32 Lba)
void UDFRelocateDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc, IN uint32 NewLba)
static unsigned int block
VOID UDFVVerify(IN PVCB Vcb, IN ULONG Flags)
OSSTATUS UDFVWrite(IN PVCB Vcb, IN void *Buffer, IN uint32 BCount, IN uint32 LBA, IN uint32 Flags)
BOOLEAN UDFIsDirEmpty(IN PDIR_INDEX_HDR hCurDirNdx)
__inline OSSTATUS UDFZeroFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 Offset, IN uint32 Length, IN BOOLEAN Direct, OUT uint32 *ReadBytes)
OSSTATUS UDFReadTagged(IN PVCB Vcb, IN int8 *Buf, IN uint32 Block, IN uint32 Location, OUT uint16 *Ident)
OSSTATUS UDFAddXSpaceBitmap(IN PVCB Vcb, IN uint32 PartNum, IN PSHORT_AD bm, IN ULONG bm_type)
int64 UDFGetFileSize(IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFBuildAllocDescs(IN PVCB Vcb, IN uint32 PartNum, IN OUT PUDF_FILE_INFO FileInfo, OUT int8 **AllocData)
void UDFSetFileUID(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFFlushFI(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN uint32 PartNum)
_In_ ULONG _In_ ULONG _In_ ULONG Length
OSSTATUS UDFAcquireDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
VOID UDFVRelease(IN PVCB Vcb)
OSSTATUS UDFUpdateVolIdent(IN PVCB Vcb, IN UDF_VDS_RECORD Lba, IN PUNICODE_STRING VolIdent)
OSSTATUS UDFReadExtent(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo, IN int64 Offset, IN SIZE_T Length, IN BOOLEAN Direct, OUT int8 *Buffer, OUT PSIZE_T ReadBytes)
OSSTATUS UDFFindLastFileSet(IN PVCB Vcb, IN lb_addr *Addr, IN OUT PFILE_SET_DESC FileSetDesc)
__inline OSSTATUS UDFFindFile__(IN PVCB Vcb, IN BOOLEAN IgnoreCase, IN PUNICODE_STRING Name, IN PUDF_FILE_INFO DirInfo)
BOOLEAN UDFIsExtentCached(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo, IN int64 Offset, IN uint32 Length, IN BOOLEAN ForWrite)
uint32 UDFFindVRS(PVCB Vcb)
OSSTATUS UDFVRead(IN PVCB Vcb, IN void *Buffer, IN uint32 BCount, IN uint32 LBA, IN uint32 Flags)
static GLenum _GLUfuncptr fn
uint8 UDFBuildHashEntry(IN PVCB Vcb, IN PUNICODE_STRING Name, OUT PHASH_ENTRY hashes, IN uint8 Mask)
int64 __fastcall UDFGetFreeSpace(IN PVCB Vcb)
void __fastcall UDFDOSName201(IN OUT PUNICODE_STRING DosName, IN PUNICODE_STRING UdfName, IN BOOLEAN KeepIntact)
void __fastcall UDFDOSName200(IN OUT PUNICODE_STRING DosName, IN PUNICODE_STRING UdfName, IN BOOLEAN KeepIntact, IN BOOLEAN Mode150)
void __fastcall UDFDOSName100(IN OUT PUNICODE_STRING DosName, IN PUNICODE_STRING UdfName, IN BOOLEAN KeepIntact)
OSSTATUS UDFLoadLogicalVol(PDEVICE_OBJECT DeviceObject, PVCB Vcb, int8 *Buf, lb_addr *fileset)
OSSTATUS __fastcall UDFRemapPacket(IN PVCB Vcb, IN uint32 Lba, IN BOOLEAN RemapSpared)
#define UDFRegisterFsStructure(Vcb, Lba, Length)
__inline PDIR_INDEX_ITEM UDFDirIndex(IN PDIR_INDEX_HDR hDirNdx, IN uint_di i)
OSSTATUS UDFUpdateUSpaceDesc(IN PVCB Vcb, int8 *Buf)
OSSTATUS UDFProcessSequence(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb, IN uint32 block, IN uint32 lastblock, OUT lb_addr *fileset)
lba_t UDFFindAnchor(PVCB Vcb)
LONG UDFFindFreeDloc(IN PVCB Vcb, IN uint32 Lba)
OSSTATUS UDFAllocFreeExtent_(IN PVCB Vcb, IN int64 Length, IN uint32 SearchStart, IN uint32 SearchLim, OUT PEXTENT_INFO Extent, IN uint8 AllocFlags)
__inline OSSTATUS UDFReadFileLocation__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 Offset, OUT PEXTENT_MAP *SubExtInfo, IN OUT uint32 *SubExtInfoSz, OUT int64 *NextOffset)
PEXTENT_MAP __fastcall UDFRelocateSectors(IN PVCB Vcb, IN uint32 Lba, IN uint32 BlockCount)
OSSTATUS UDFUpdateVDS(IN PVCB Vcb, IN uint32 block, IN uint32 lastblock, IN uint32 flags)
OSSTATUS UDFDirIndexGrow(IN PDIR_INDEX_HDR *_hDirNdx, IN uint_di d)
IN PVOID IN PVOID IN USHORT IN USHORT Size
OSSTATUS UDFRemoveDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
OSSTATUS UDFUnlinkDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
BOOLEAN __fastcall UDFAreSectorsRelocated(IN PVCB Vcb, IN uint32 Lba, IN uint32 BlockCount)
uint16 __fastcall UDFUnicodeCksum150(PWCHAR s, uint32 n)
void Replace(HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, LONG radius)
OSSTATUS UDFBuildShortAllocDescs(IN PVCB Vcb, IN uint32 PartNum, OUT int8 **Buff, IN uint32 InitSz, IN OUT PUDF_FILE_INFO FileInfo)
OSSTATUS UDFBuildLongAllocDescs(IN PVCB Vcb, IN uint32 PartNum, OUT int8 **Buff, IN uint32 InitSz, IN OUT PUDF_FILE_INFO FileInfo)
PUDF_FILE_INFO UDFLocateParallelFI(PUDF_FILE_INFO di, uint_di i, PUDF_FILE_INFO fi)
OSSTATUS UDFHardLinkFile__(IN PVCB Vcb, IN BOOLEAN IgnoreCase, IN OUT BOOLEAN *Replace, IN PUNICODE_STRING fn, IN OUT PUDF_FILE_INFO DirInfo1, IN OUT PUDF_FILE_INFO DirInfo2, IN OUT PUDF_FILE_INFO FileInfo)
OSSTATUS UDFPretendFileDeleted__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFFlushFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN ULONG FlushFlags=0)
void UDFFlushFESpace(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc, IN BOOLEAN Discard=FLUSH_FE_KEEP)
OSSTATUS UDFFindFile(IN PVCB Vcb, IN BOOLEAN IgnoreCase, IN BOOLEAN NotDeleted, IN PUNICODE_STRING Name, IN PUDF_FILE_INFO DirInfo, IN OUT uint_di *Index)
uint32 __fastcall UDFPartLbaToPhys(IN PVCB Vcb, IN lb_addr *Addr)
int64 UDFGetFileSizeFromDirNdx(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
static USHORT USHORT * NewLength
OSSTATUS UDFBuildFileIdent(IN PVCB Vcb, IN PUNICODE_STRING fn, IN PLONG_AD FileEntryIcb, IN uint32 ImpUseLen, OUT PFILE_IDENT_DESC *_FileId, OUT uint32 *FileIdLen)
BOOLEAN UDFUnicodeInString(IN uint8 *string, IN WCHAR ch)
void UDFSetEntityID_imp_(IN EntityID *eID, IN uint8 *Str, IN uint32 Len)
OSSTATUS UDFMarkAllocatedAsRecorded(IN PVCB Vcb, IN int64 Offset, IN uint32 Length, IN PEXTENT_INFO ExtInfo)
uint16 __fastcall UDFUnicodeCksum(PWCHAR s, uint32 n)
uint32 UDFPhysLbaToPart(IN PVCB Vcb, IN uint32 PartNum, IN uint32 Addr)
_In_ PDEVICE_OBJECT DeviceObject
OSSTATUS UDFRenameMoveFile__(IN PVCB Vcb, IN BOOLEAN IgnoreCase, IN OUT BOOLEAN *Replace, IN PUNICODE_STRING fn, IN OUT PUDF_FILE_INFO DirInfo1, IN OUT PUDF_FILE_INFO DirInfo2, IN OUT PUDF_FILE_INFO FileInfo)
LONG UDFFindDloc(IN PVCB Vcb, IN uint32 Lba)
OSSTATUS UDFUpdateXSpaceBitmaps(IN PVCB Vcb, IN uint32 PartNum, IN PPARTITION_HEADER_DESC phd)
void __fastcall UDFDecompressUnicode(IN OUT PUNICODE_STRING UName, IN uint8 *CS0, IN SIZE_T Length, OUT uint16 *valueCRC)
PUDF_FILE_INFO UDFLocateAnyParallelFI(PUDF_FILE_INFO fi)
#define STATUS_NOT_A_DIRECTORY
BOOLEAN __fastcall UDFIsIllegalChar(IN WCHAR ch)
OSSTATUS UDFIndexDirectory(IN PVCB Vcb, IN OUT PUDF_FILE_INFO FileInfo)
OSSTATUS UDFConvertFEToExtended(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
uint32 __fastcall UDFPartEnd(PVCB Vcb, uint32 PartNum)
void UDFFreeFileAllocation(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo, IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFGetCachedAllocation(IN PVCB Vcb, IN uint32 ParentLocation, OUT PEXTENT_INFO Ext, OUT uint32 *Items, IN uint32 AllocClass)
#define UDF_DIR_INDEX_FRAME
OSSTATUS UDFFlushAllCachedAllocations(IN PVCB Vcb, IN uint32 AllocClass)
PEXTENT_MAP UDFExtAllocDescToMapping(IN PVCB Vcb, IN PLONG_AD AllocDesc, IN uint32 AllocDescLength, IN uint32 SubCallCount, OUT PEXTENT_INFO AllocLoc)
OSSTATUS UDFUpdatePartDesc(PVCB Vcb, int8 *Buf)
OSSTATUS UDFZeroExtent(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo, IN int64 Offset, IN SIZE_T Length, IN BOOLEAN Deallocate, IN BOOLEAN Direct, OUT PSIZE_T WrittenBytes)
OSSTATUS UDFModifyVAT(IN PVCB Vcb, IN uint32 Lba, IN uint32 Length)
uint32 __fastcall UDFPartStart(PVCB Vcb, uint32 PartNum)
PEXTENT_MAP __fastcall UDFMergeMappings(IN PEXTENT_MAP Extent, IN PEXTENT_MAP Extent2)
OSSTATUS UDFCreateFile__(IN PVCB Vcb, IN BOOLEAN IgnoreCase, IN PUNICODE_STRING fn, IN uint32 ExtAttrSz, IN uint32 ImpUseLen, IN BOOLEAN Extended, IN BOOLEAN CreateNew, IN OUT PUDF_FILE_INFO DirInfo, OUT PUDF_FILE_INFO *_FileInfo)
SIZE_T UDFFindMinSuitableExtent(IN PVCB Vcb, IN uint32 Length, IN uint32 SearchStart, IN uint32 SearchLim, OUT uint32 *MaxExtLen, IN uint8 AllocFlags)
void __fastcall UDFPackMapping(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo)
OSSTATUS UDFMarkNotAllocatedAsAllocated(IN PVCB Vcb, IN int64 Offset, IN uint32 Length, IN PEXTENT_INFO ExtInfo)
#define UDFMarkRecordedAsAllocated(Vcb, Off, Len, Ext)
uint32 UDFGetFileEALength(IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFResizeExtent(IN PVCB Vcb, IN uint32 PartNum, IN int64 Length, IN BOOLEAN AlwaysInIcb, OUT PEXTENT_INFO ExtInfo)
void __fastcall UDFCompressUnicode(IN PUNICODE_STRING UName, IN OUT uint8 **_CS0, IN OUT PSIZE_T Length)
void UDFDirIndexFree(PDIR_INDEX_HDR hDirNdx)
OSSTATUS UDFMarkAllocatedAsNotXXX(IN PVCB Vcb, IN int64 Offset, IN uint32 Length, IN PEXTENT_INFO ExtInfo, IN BOOLEAN Deallocate)
OSSTATUS UDFRecordVAT(IN PVCB Vcb)
void UDFChangeFileCounter(IN PVCB Vcb, IN BOOLEAN FileCounter, IN BOOLEAN Increase)
OSSTATUS UDFStoreCachedAllocation(IN PVCB Vcb, IN uint32 ParentLocation, IN PEXTENT_INFO Ext, IN uint32 Items, IN uint32 AllocClass)
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 GLint GLint j
OSSTATUS UDFLoadLogicalVolInt(PDEVICE_OBJECT DeviceObject, PVCB Vcb, extent_ad loc)
OSSTATUS UDFUpdateVAT(IN void *_Vcb, IN uint32 Lba, IN uint32 *RelocTab, IN uint32 BCount)
OSSTATUS UDFBuildFileEntry(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo, IN PUDF_FILE_INFO FileInfo, IN uint32 PartNum, IN uint16 AllocMode, IN uint32 ExtAttrSz, IN BOOLEAN Extended)
OSSTATUS UDFCloseFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
void UDFLoadFileset(IN PVCB Vcb, IN PFILE_SET_DESC fset, OUT lb_addr *root, OUT lb_addr *sysstream)
ULONG UDFIsBlockAllocated(IN void *_Vcb, IN uint32 Lba)
OSSTATUS UDFUnlinkAllFilesInDir(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo)
_Must_inspect_result_ _In_ ULONG Flags
uint32 UDFCleanUpFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFCreateRootFile__(IN PVCB Vcb, IN uint32 PartNum, IN uint32 ExtAttrSz, IN uint32 ImpUseLen, IN BOOLEAN Extended, OUT PUDF_FILE_INFO *_FileInfo)
PEXTENT_MAP __fastcall UDFExtentToMapping_(IN PEXTENT_AD Extent)
OSSTATUS UDFPrepareXSpaceBitmap(IN PVCB Vcb, IN OUT PSHORT_AD XSpaceBitmap, IN OUT PEXTENT_INFO XSBMExtInfo, IN OUT int8 **XSBM, IN OUT uint32 *XSl)
_In_ WDFCOLLECTION _In_ ULONG Index
OSSTATUS UDFDelXSpaceBitmap(IN PVCB Vcb, IN uint32 PartNum, IN PSHORT_AD bm)
OSSTATUS UDFConvertFEToNonInICB(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN uint8 NewAllocMode)
OSSTATUS UDFPadLastSector(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo)
int64 __fastcall UDFGetTotalSpace(IN PVCB Vcb)
void __fastcall UDFDOSName(IN PVCB Vcb, IN OUT PUNICODE_STRING DosName, IN PUNICODE_STRING UdfName, IN BOOLEAN KeepIntact)
PEXTENT_MAP UDFShortAllocDescToMapping(IN PVCB Vcb, IN uint32 PartNum, IN PLONG_AD AllocDesc, IN uint32 AllocDescLength, IN uint32 SubCallCount, OUT PEXTENT_INFO AllocLoc)
__inline OSSTATUS UDFSparseFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 Offset, IN uint32 Length, IN BOOLEAN Direct, OUT uint32 *ReadBytes)
void UDFLoadPVolDesc(PVCB Vcb, int8 *Buf)
static struct proto Ext[]
OSSTATUS UDFUnlinkFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN BOOLEAN FreeSpace)
OSSTATUS UDFVForget(IN PVCB Vcb, IN uint32 BCount, IN uint32 LBA, IN uint32 Flags)
uint32 UDFGetMappingLength(IN PEXTENT_MAP Extent)
#define ValidateFileInfo(fi)
ULONG UDFLocateLbaInExtent(IN PVCB Vcb, IN PEXTENT_MAP Extent, IN lba_t lba)
int64 UDFGetExtentLength(IN PEXTENT_MAP Extent)
#define UDF_DIR_INDEX_FRAME_SH
OSSTATUS UDFWriteFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 Offset, IN SIZE_T Length, IN BOOLEAN Direct, IN int8 *Buffer, OUT PSIZE_T WrittenBytes)
PEXTENT_MAP UDFLongAllocDescToMapping(IN PVCB Vcb, IN PLONG_AD AllocDesc, IN uint32 AllocDescLength, IN uint32 SubCallCount, OUT PEXTENT_INFO AllocLoc)
PDIR_INDEX_ITEM UDFDirIndexGetFrame(IN PDIR_INDEX_HDR hDirNdx, IN uint32 Frame, OUT uint32 *FrameLen, OUT uint_di *Index, IN uint_di Rel)
__inline BOOLEAN __fastcall UDFVIsStored(IN PVCB Vcb, IN lba_t lba)
OSSTATUS UDFLoadPartDesc(PVCB Vcb, int8 *Buf)
void UDFFreeFESpace(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo, IN PEXTENT_INFO FEExtInfo)
void UDFMarkSpaceAsXXXNoProtect_(IN PVCB Vcb, IN PEXTENT_MAP Map, IN uint32 asXXX)
BOOLEAN UDFDirIndexInitScan(IN PUDF_FILE_INFO DirInfo, OUT PUDF_DIR_SCAN_CONTEXT Context, IN uint_di Index)
OSSTATUS UDFReadExtentLocation(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo, IN int64 Offset, OUT PEXTENT_MAP *_SubExtInfo, IN OUT uint32 *_SubExtInfoSz, OUT int64 *_NextOffset)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
void UDFReleaseDlocList(IN PVCB Vcb)
OSSTATUS UDFReleaseDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
uint32 __fastcall crc32(IN uint8 *s, IN uint32 len)
OSSTATUS UDFReTagDirectory(IN PVCB Vcb, IN OUT PUDF_FILE_INFO FileInfo)
__inline OSSTATUS UDFReadFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 Offset, IN SIZE_T Length, IN BOOLEAN Direct, OUT int8 *Buffer, OUT PSIZE_T ReadBytes)
OSSTATUS UDFBuildFreeSpaceBitmap(IN PVCB Vcb, IN uint32 PartNdx, IN PPARTITION_HEADER_DESC phd, IN uint32 Lba)
_In_ ULONG _In_ ULONG Offset
uint32 UDFMemRealloc(IN int8 *OldBuff, IN uint32 OldLength, OUT int8 **NewBuff, IN uint32 NewLength)
OSSTATUS UDFReadVDS(IN PVCB Vcb, IN uint32 block, IN uint32 lastblock, IN PUDF_VDS_RECORD vds, IN int8 *Buf)
uint32 __fastcall UDFGetPartFreeSpace(IN PVCB Vcb, IN uint32 partNum)
OSSTATUS UDFLoadSparingTable(IN PVCB Vcb, IN PSPARABLE_PARTITION_MAP PartMap)
int64 UDFGetFileUID(IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFVInit(IN PVCB Vcb)
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
void UDFInsertLinkedFile(PUDF_FILE_INFO fi, PUDF_FILE_INFO fi2)
PDIR_INDEX_ITEM UDFDirIndexScan(PUDF_DIR_SCAN_CONTEXT Context, PUDF_FILE_INFO *_FileInfo)
_Out_ PUNICODE_STRING DosName
void UDFReadEntityID_Domain(PVCB Vcb, EntityID *eID)
uint16 __fastcall UDFCrc(IN uint8 *Data, IN SIZE_T Size)
void UDFSetAllocDescLen(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
VOID UDFVFlush(IN PVCB Vcb)
OSSTATUS UDFPackDirectory__(IN PVCB Vcb, IN OUT PUDF_FILE_INFO FileInfo)
OSSTATUS UDFOpenRootFile__(IN PVCB Vcb, IN lb_addr *RootLoc, OUT PUDF_FILE_INFO FileInfo)
OSSTATUS UDFOpenStreamDir__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, OUT PUDF_FILE_INFO *_SDirInfo)
BOOLEAN __fastcall UDFCheckArea(IN PVCB Vcb, IN lba_t LBA, IN uint32 BCount)
OSSTATUS UDFLoadExtInfo(IN PVCB Vcb, IN PFILE_ENTRY fe, IN PLONG_AD fe_loc, IN OUT PEXTENT_INFO FExtInfo, IN OUT PEXTENT_INFO AExtInfo)
OSSTATUS __fastcall UDFUnmapRange(IN PVCB Vcb, IN uint32 Lba, IN uint32 BCount)
OSSTATUS UDFDirIndexTrunc(IN PDIR_INDEX_HDR *_hDirNdx, IN uint_di d)
void UDFSetFileSize(IN PUDF_FILE_INFO FileInfo, IN int64 Size)
OSSTATUS UDFOpenFile__(IN PVCB Vcb, IN BOOLEAN IgnoreCase, IN BOOLEAN NotDeleted, IN PUNICODE_STRING fn, IN PUDF_FILE_INFO DirInfo, OUT PUDF_FILE_INFO *_FileInfo, IN uint_di *IndexToOpen)
void UDFMarkSpaceAsXXX_(IN PVCB Vcb, IN PEXTENT_MAP Map, IN uint32 asXXX)
OSSTATUS UDFReadFileEntry(IN PVCB Vcb, IN long_ad *Icb, IN OUT PFILE_ENTRY FileEntry, IN OUT uint16 *Ident)
uint32 __fastcall UDFPartLen(PVCB Vcb, uint32 PartNum)
OSSTATUS UDFLoadPartition(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb, OUT lb_addr *fileset)
uint16 UDFGetFileLinkCount(IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFLoadVAT(IN PVCB Vcb, IN uint32 PartNdx)
uint32 __fastcall UDFRelocateSector(IN PVCB Vcb, IN uint32 Lba)
OSSTATUS UDFRecordDirectory__(IN PVCB Vcb, IN OUT PUDF_FILE_INFO DirInfo)
#define UDFMarkAllocatedAsNotAllocated(Vcb, Off, Len, Ext)
OSSTATUS UDFAllocateFESpace(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo, IN uint32 PartNum, IN PEXTENT_INFO FEExtInfo, IN uint32 Len)
PDIR_INDEX_HDR UDFGetDirIndexByFileInfo(IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFUmount__(IN PVCB Vcb)
OSSTATUS UDFUpdateLogicalVolInt(PVCB Vcb, BOOLEAN Close)
OSSTATUS __fastcall UDFUnPackMapping(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo)
OSSTATUS UDFWriteExtent(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo, IN int64 Offset, IN SIZE_T Length, IN BOOLEAN Direct, IN int8 *Buffer, OUT PSIZE_T WrittenBytes)
void UDFChangeFileLinkCount(IN PUDF_FILE_INFO FileInfo, IN BOOLEAN Increase)
#define UDFGetBit(arr, bit)
uint32 UDFExtentOffsetToLba(IN PVCB Vcb, IN PEXTENT_AD Extent, IN int64 Offset, OUT uint32 *SectorOffset, OUT PSIZE_T AvailLength, OUT uint32 *Flags, OUT uint32 *Index)
void UDFSetFileSizeInDirNdx(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 *ASize)
SIZE_T UDFGetBitmapLen(uint32 *Bitmap, SIZE_T Offs, SIZE_T Lim)
PEXTENT_MAP UDFReadMappingFromXEntry(IN PVCB Vcb, IN uint32 PartNum, IN tag *XEntry, IN OUT uint32 *Offset, OUT PEXTENT_INFO AllocLoc)
OSSTATUS UDFCreateStreamDir__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, OUT PUDF_FILE_INFO *_SDirInfo)
void UDFFreeDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
OSSTATUS UDFVerifySequence(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb, IN uint32 block, IN uint32 lastblock, OUT lb_addr *fileset)
uint32 __fastcall UDFGetPartNumByPhysLba(IN PVCB Vcb, IN uint32 Lba)
OSSTATUS UDFResizeFile__(IN PVCB Vcb, IN OUT PUDF_FILE_INFO FileInfo, IN int64 NewLength)
void UDFSetUpTag(IN PVCB Vcb, IN tag *Tag, IN uint16 DataLen, IN uint32 TagLoc)
OSSTATUS UDFGetDiskInfoAndVerify(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb)
BOOLEAN UDFCompareFileInfo(IN PUDF_FILE_INFO f1, IN PUDF_FILE_INFO f2)
OSSTATUS UDFFlushFE(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN uint32 PartNum)