7#ifndef __UDF_STRUCT_SUPPORT_H__
8#define __UDF_STRUCT_SUPPORT_H__
75#define HASH_POSIX 0x01
79#define HASH_KEEP_NAME 0x08
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__)
181 #define UDFExtentToMapping(e) UDFExtentToMapping_(e)
217#define UDFDOSName__(Vcb, DosName, UdfName, FileInfo) \
218 UDFDOSName(Vcb, DosName, UdfName, (FileInfo) && ((FileInfo)->Index < 2));
261#ifdef UDF_CHECK_DISK_ALLOCATION
263void 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__);
277#define UDFCheckSpaceAllocation(Vcb, FileInfo, Map, asXXX) \
278 UDFCheckSpaceAllocation_(Vcb, Map, asXXX);
281#define UDFCheckSpaceAllocation(Vcb, FileInfo, Map, asXXX) {;}
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__);
302#define UDFMarkSpaceAsXXXNoProtect(Vcb, FileInfo, Map, asXXX) \
303 UDFMarkSpaceAsXXXNoProtect_(Vcb, Map, asXXX);
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__);
322#define UDFMarkSpaceAsXXX(Vcb, FileInfo, Map, asXXX) \
323 UDFMarkSpaceAsXXX_(Vcb, Map, asXXX);
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__)
347#define UDFAllocFreeExtent(v, l, ss, sl, e, af) UDFAllocFreeExtent_(v, l, ss, sl, e, af)
355#define UDF_PREALLOC_CLASS_FE 0x00
356#define UDF_PREALLOC_CLASS_DIR 0x01
388#ifndef 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)
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
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
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
1108#ifdef UDF_LIMIT_DIR_SIZE
1109 if( hDirNdx && (i < hDirNdx->LastFrameCount))
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)
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)
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
1250#define UDFRegisterFsStructure(Vcb, Lba, Length) {NOTHING;}
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)
static USHORT USHORT * NewLength
#define crc32(crc, buf, len)
void Replace(HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, LONG radius)
#define ValidateFileInfo(fi)
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
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
static struct proto Ext[]
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
uint32 __fastcall UDFPartEnd(PVCB Vcb, uint32 PartNum)
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)
int64 UDFGetFileUID(IN PUDF_FILE_INFO FileInfo)
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)
uint32 __fastcall UDFPartLen(PVCB Vcb, uint32 PartNum)
void UDFSetFileSize(IN PUDF_FILE_INFO FileInfo, IN int64 Size)
void UDFSetUpTag(IN PVCB Vcb, IN tag *Tag, IN uint16 DataLen, IN uint32 TagLoc)
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)
void UDFInsertLinkedFile(PUDF_FILE_INFO fi, PUDF_FILE_INFO fi2)
OSSTATUS UDFUpdateXSpaceBitmaps(IN PVCB Vcb, IN uint32 PartNum, IN PPARTITION_HEADER_DESC phd)
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)
OSSTATUS __fastcall UDFUnmapRange(IN PVCB Vcb, IN uint32 Lba, IN uint32 BCount)
BOOLEAN __fastcall UDFAreSectorsRelocated(IN PVCB Vcb, IN uint32 Lba, IN uint32 BlockCount)
OSSTATUS UDFVWrite(IN PVCB Vcb, IN void *Buffer, IN uint32 BCount, IN uint32 LBA, IN uint32 Flags)
uint16 UDFGetFileLinkCount(IN 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)
#define UDF_DIR_INDEX_FRAME_SH
OSSTATUS UDFBuildAllocDescs(IN PVCB Vcb, IN uint32 PartNum, IN OUT PUDF_FILE_INFO FileInfo, OUT int8 **AllocData)
OSSTATUS UDFConvertFEToExtended(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
__inline OSSTATUS UDFSparseFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 Offset, IN uint32 Length, IN BOOLEAN Direct, OUT uint32 *ReadBytes)
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)
uint32 UDFGetFileEALength(IN PUDF_FILE_INFO FileInfo)
void __fastcall UDFDOSName100(IN OUT PUNICODE_STRING DosName, IN PUNICODE_STRING UdfName, IN BOOLEAN KeepIntact)
OSSTATUS UDFOpenRootFile__(IN PVCB Vcb, IN lb_addr *RootLoc, OUT PUDF_FILE_INFO FileInfo)
OSSTATUS UDFLoadSparingTable(IN PVCB Vcb, IN PSPARABLE_PARTITION_MAP PartMap)
OSSTATUS UDFMarkNotAllocatedAsAllocated(IN PVCB Vcb, IN int64 Offset, IN uint32 Length, IN PEXTENT_INFO ExtInfo)
uint16 __fastcall UDFUnicodeCksum(PWCHAR s, uint32 n)
OSSTATUS UDFRecordDirectory__(IN PVCB Vcb, IN OUT PUDF_FILE_INFO DirInfo)
OSSTATUS UDFLoadPartition(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb, OUT lb_addr *fileset)
BOOLEAN __fastcall UDFCheckArea(IN PVCB Vcb, IN lba_t LBA, IN uint32 BCount)
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)
uint16 __fastcall UDFCrc(IN uint8 *Data, IN SIZE_T Size)
OSSTATUS UDFPackDirectory__(IN PVCB Vcb, IN OUT PUDF_FILE_INFO FileInfo)
OSSTATUS UDFProcessSequence(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb, IN uint32 block, IN uint32 lastblock, OUT lb_addr *fileset)
void __fastcall UDFDOSName200(IN OUT PUNICODE_STRING DosName, IN PUNICODE_STRING UdfName, IN BOOLEAN KeepIntact, IN BOOLEAN Mode150)
OSSTATUS UDFUpdateVolIdent(IN PVCB Vcb, IN UDF_VDS_RECORD Lba, IN PUNICODE_STRING VolIdent)
uint16 __fastcall UDFUnicodeCksum150(PWCHAR s, uint32 n)
PEXTENT_MAP __fastcall UDFRelocateSectors(IN PVCB Vcb, IN uint32 Lba, IN uint32 BlockCount)
uint32 __fastcall UDFRelocateSector(IN PVCB Vcb, IN uint32 Lba)
OSSTATUS UDFPadLastSector(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo)
OSSTATUS UDFUpdatePartDesc(PVCB Vcb, int8 *Buf)
OSSTATUS UDFAllocFreeExtent_(IN PVCB Vcb, IN int64 Length, IN uint32 SearchStart, IN uint32 SearchLim, OUT PEXTENT_INFO Extent, IN uint8 AllocFlags)
OSSTATUS UDFUpdateVAT(IN void *_Vcb, IN uint32 Lba, IN uint32 *RelocTab, IN uint32 BCount)
__inline BOOLEAN __fastcall UDFVIsStored(IN PVCB Vcb, IN lba_t lba)
OSSTATUS UDFUpdateVDS(IN PVCB Vcb, IN uint32 block, IN uint32 lastblock, IN uint32 flags)
PEXTENT_MAP UDFLongAllocDescToMapping(IN PVCB Vcb, IN PLONG_AD AllocDesc, IN uint32 AllocDescLength, IN uint32 SubCallCount, OUT PEXTENT_INFO AllocLoc)
int64 UDFGetExtentLength(IN PEXTENT_MAP Extent)
OSSTATUS UDFStoreDloc(IN PVCB Vcb, IN PUDF_FILE_INFO fi, IN uint32 Lba)
int64 __fastcall UDFGetTotalSpace(IN PVCB Vcb)
void __fastcall UDFCompressUnicode(IN PUNICODE_STRING UName, IN OUT uint8 **_CS0, IN OUT PSIZE_T Length)
OSSTATUS UDFReleaseDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
uint32 __fastcall UDFGetPartFreeSpace(IN PVCB Vcb, IN uint32 partNum)
OSSTATUS UDFFlushFI(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN uint32 PartNum)
OSSTATUS UDFVRead(IN PVCB Vcb, IN void *Buffer, IN uint32 BCount, IN uint32 LBA, IN uint32 Flags)
OSSTATUS UDFUpdateLogicalVolInt(PVCB Vcb, BOOLEAN Close)
int64 UDFGetFileSize(IN PUDF_FILE_INFO FileInfo)
uint32 __fastcall UDFPartStart(PVCB Vcb, uint32 PartNum)
PUDF_FILE_INFO UDFLocateAnyParallelFI(PUDF_FILE_INFO fi)
OSSTATUS UDFPrepareXSpaceBitmap(IN PVCB Vcb, IN OUT PSHORT_AD XSpaceBitmap, IN OUT PEXTENT_INFO XSBMExtInfo, IN OUT int8 **XSBM, IN OUT uint32 *XSl)
OSSTATUS UDFCloseFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
OSSTATUS UDFBuildFileIdent(IN PVCB Vcb, IN PUNICODE_STRING fn, IN PLONG_AD FileEntryIcb, IN uint32 ImpUseLen, OUT PFILE_IDENT_DESC *_FileId, OUT uint32 *FileIdLen)
PEXTENT_MAP UDFExtAllocDescToMapping(IN PVCB Vcb, IN PLONG_AD AllocDesc, IN uint32 AllocDescLength, IN uint32 SubCallCount, OUT PEXTENT_INFO AllocLoc)
OSSTATUS __fastcall UDFUnPackMapping(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo)
#define UDFMarkAllocatedAsNotAllocated(Vcb, Off, Len, Ext)
lba_t UDFFindAnchor(PVCB Vcb)
OSSTATUS UDFRemoveDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
uint32 UDFCleanUpFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
VOID UDFVFlush(IN PVCB Vcb)
#define UDFGetBit(arr, bit)
OSSTATUS UDFReadTagged(IN PVCB Vcb, IN int8 *Buf, IN uint32 Block, IN uint32 Location, OUT uint16 *Ident)
int64 __fastcall UDFGetFreeSpace(IN PVCB Vcb)
OSSTATUS UDFReadExtentLocation(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo, IN int64 Offset, OUT PEXTENT_MAP *_SubExtInfo, IN OUT uint32 *_SubExtInfoSz, OUT int64 *_NextOffset)
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)
VOID UDFVVerify(IN PVCB Vcb, IN ULONG Flags)
OSSTATUS UDFFindLastFileSet(IN PVCB Vcb, IN lb_addr *Addr, IN OUT PFILE_SET_DESC FileSetDesc)
OSSTATUS UDFUnlinkFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN BOOLEAN FreeSpace)
PDIR_INDEX_ITEM UDFDirIndexGetFrame(IN PDIR_INDEX_HDR hDirNdx, IN uint32 Frame, OUT uint32 *FrameLen, OUT uint_di *Index, IN uint_di Rel)
__inline PDIR_INDEX_ITEM UDFDirIndex(IN PDIR_INDEX_HDR hDirNdx, IN uint_di i)
OSSTATUS UDFGetDiskInfoAndVerify(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb)
OSSTATUS UDFVerifySequence(IN PDEVICE_OBJECT DeviceObject, IN PVCB Vcb, IN uint32 block, IN uint32 lastblock, OUT lb_addr *fileset)
OSSTATUS UDFIndexDirectory(IN PVCB Vcb, IN OUT PUDF_FILE_INFO FileInfo)
void __fastcall UDFDOSName(IN PVCB Vcb, IN OUT PUNICODE_STRING DosName, IN PUNICODE_STRING UdfName, IN BOOLEAN KeepIntact)
OSSTATUS UDFUpdateUSpaceDesc(IN PVCB Vcb, int8 *Buf)
void UDFChangeFileCounter(IN PVCB Vcb, IN BOOLEAN FileCounter, IN BOOLEAN Increase)
OSSTATUS __fastcall UDFRemapPacket(IN PVCB Vcb, IN uint32 Lba, IN BOOLEAN RemapSpared)
void UDFRelocateDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc, IN uint32 NewLba)
#define UDF_DIR_INDEX_FRAME
OSSTATUS UDFLoadLogicalVolInt(PDEVICE_OBJECT DeviceObject, PVCB Vcb, extent_ad loc)
OSSTATUS UDFAcquireDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
BOOLEAN __fastcall UDFIsIllegalChar(IN WCHAR ch)
PDIR_INDEX_HDR UDFGetDirIndexByFileInfo(IN PUDF_FILE_INFO FileInfo)
PEXTENT_MAP __fastcall UDFExtentToMapping_(IN PEXTENT_AD Extent)
__inline OSSTATUS UDFFindFile__(IN PVCB Vcb, IN BOOLEAN IgnoreCase, IN PUNICODE_STRING Name, IN PUDF_FILE_INFO DirInfo)
OSSTATUS UDFAllocateFESpace(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo, IN uint32 PartNum, IN PEXTENT_INFO FEExtInfo, IN uint32 Len)
OSSTATUS UDFUnlinkDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
uint32 UDFFindVRS(PVCB Vcb)
OSSTATUS UDFOpenStreamDir__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, OUT PUDF_FILE_INFO *_SDirInfo)
void UDFSetFileUID(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
void UDFReadEntityID_Domain(PVCB Vcb, EntityID *eID)
OSSTATUS UDFFlushAllCachedAllocations(IN PVCB Vcb, IN uint32 AllocClass)
OSSTATUS UDFMarkAllocatedAsRecorded(IN PVCB Vcb, IN int64 Offset, IN uint32 Length, IN PEXTENT_INFO ExtInfo)
OSSTATUS UDFMarkAllocatedAsNotXXX(IN PVCB Vcb, IN int64 Offset, IN uint32 Length, IN PEXTENT_INFO ExtInfo, IN BOOLEAN Deallocate)
void UDFMarkSpaceAsXXXNoProtect_(IN PVCB Vcb, IN PEXTENT_MAP Map, IN uint32 asXXX)
OSSTATUS UDFStoreCachedAllocation(IN PVCB Vcb, IN uint32 ParentLocation, IN PEXTENT_INFO Ext, IN uint32 Items, IN uint32 AllocClass)
BOOLEAN UDFUnicodeInString(IN uint8 *string, IN WCHAR ch)
BOOLEAN UDFIsDirEmpty(IN PDIR_INDEX_HDR hCurDirNdx)
#define UDFRegisterFsStructure(Vcb, Lba, Length)
void UDFMarkSpaceAsXXX_(IN PVCB Vcb, IN PEXTENT_MAP Map, IN uint32 asXXX)
OSSTATUS UDFUmount__(IN PVCB Vcb)
OSSTATUS UDFCreateRootFile__(IN PVCB Vcb, IN uint32 PartNum, IN uint32 ExtAttrSz, IN uint32 ImpUseLen, IN BOOLEAN Extended, OUT PUDF_FILE_INFO *_FileInfo)
void __fastcall UDFPackMapping(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo)
void UDFSetEntityID_imp_(IN EntityID *eID, IN uint8 *Str, IN uint32 Len)
SIZE_T UDFGetBitmapLen(uint32 *Bitmap, SIZE_T Offs, SIZE_T Lim)
void UDFSetFileSizeInDirNdx(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 *ASize)
int64 UDFGetFileSizeFromDirNdx(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)
void UDFFreeFESpace(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo, IN PEXTENT_INFO FEExtInfo)
OSSTATUS UDFReadVDS(IN PVCB Vcb, IN uint32 block, IN uint32 lastblock, IN PUDF_VDS_RECORD vds, IN int8 *Buf)
OSSTATUS UDFDelXSpaceBitmap(IN PVCB Vcb, IN uint32 PartNum, IN PSHORT_AD bm)
PEXTENT_MAP UDFReadMappingFromXEntry(IN PVCB Vcb, IN uint32 PartNum, IN tag *XEntry, IN OUT uint32 *Offset, OUT PEXTENT_INFO AllocLoc)
OSSTATUS UDFResizeFile__(IN PVCB Vcb, IN OUT PUDF_FILE_INFO FileInfo, IN int64 NewLength)
OSSTATUS UDFDirIndexGrow(IN PDIR_INDEX_HDR *_hDirNdx, IN uint_di d)
OSSTATUS UDFBuildShortAllocDescs(IN PVCB Vcb, IN uint32 PartNum, OUT int8 **Buff, IN uint32 InitSz, IN OUT PUDF_FILE_INFO FileInfo)
void UDFDirIndexFree(PDIR_INDEX_HDR hDirNdx)
OSSTATUS UDFModifyVAT(IN PVCB Vcb, IN uint32 Lba, IN uint32 Length)
OSSTATUS UDFLoadVAT(IN PVCB Vcb, IN uint32 PartNdx)
OSSTATUS UDFAddXSpaceBitmap(IN PVCB Vcb, IN uint32 PartNum, IN PSHORT_AD bm, IN ULONG bm_type)
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)
void UDFReleaseDlocList(IN PVCB Vcb)
__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)
BOOLEAN UDFIsExtentCached(IN PVCB Vcb, IN PEXTENT_INFO ExtInfo, IN int64 Offset, IN uint32 Length, IN BOOLEAN ForWrite)
__inline OSSTATUS UDFZeroFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 Offset, IN uint32 Length, IN BOOLEAN Direct, OUT uint32 *ReadBytes)
PDIR_INDEX_ITEM UDFDirIndexScan(PUDF_DIR_SCAN_CONTEXT Context, PUDF_FILE_INFO *_FileInfo)
#define UDFMarkRecordedAsAllocated(Vcb, Off, Len, Ext)
uint32 UDFPhysLbaToPart(IN PVCB Vcb, IN uint32 PartNum, IN uint32 Addr)
OSSTATUS UDFResizeExtent(IN PVCB Vcb, IN uint32 PartNum, IN int64 Length, IN BOOLEAN AlwaysInIcb, OUT PEXTENT_INFO ExtInfo)
LONG UDFFindFreeDloc(IN PVCB Vcb, IN uint32 Lba)
PUDF_FILE_INFO UDFLocateParallelFI(PUDF_FILE_INFO di, uint_di i, PUDF_FILE_INFO fi)
OSSTATUS UDFConvertFEToNonInICB(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN uint8 NewAllocMode)
OSSTATUS UDFRecordVAT(IN PVCB Vcb)
void __fastcall UDFDecompressUnicode(IN OUT PUNICODE_STRING UName, IN uint8 *CS0, IN SIZE_T Length, OUT uint16 *valueCRC)
uint8 UDFBuildHashEntry(IN PVCB Vcb, IN PUNICODE_STRING Name, OUT PHASH_ENTRY hashes, IN uint8 Mask)
__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)
void UDFFreeFileAllocation(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo, IN PUDF_FILE_INFO FileInfo)
PEXTENT_MAP __fastcall UDFMergeMappings(IN PEXTENT_MAP Extent, IN PEXTENT_MAP Extent2)
OSSTATUS UDFReadFileEntry(IN PVCB Vcb, IN long_ad *Icb, IN OUT PFILE_ENTRY FileEntry, IN OUT uint16 *Ident)
void UDFLoadPVolDesc(PVCB Vcb, int8 *Buf)
OSSTATUS UDFLoadExtInfo(IN PVCB Vcb, IN PFILE_ENTRY fe, IN PLONG_AD fe_loc, IN OUT PEXTENT_INFO FExtInfo, IN OUT PEXTENT_INFO AExtInfo)
ULONG UDFIsBlockAllocated(IN void *_Vcb, IN uint32 Lba)
OSSTATUS UDFLoadLogicalVol(PDEVICE_OBJECT DeviceObject, PVCB Vcb, int8 *Buf, lb_addr *fileset)
ULONG UDFLocateLbaInExtent(IN PVCB Vcb, IN PEXTENT_MAP Extent, IN lba_t lba)
OSSTATUS UDFBuildLongAllocDescs(IN PVCB Vcb, IN uint32 PartNum, OUT int8 **Buff, IN uint32 InitSz, IN OUT PUDF_FILE_INFO FileInfo)
void UDFSetAllocDescLen(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
uint32 __fastcall UDFGetPartNumByPhysLba(IN PVCB Vcb, IN uint32 Lba)
OSSTATUS UDFUnlinkAllFilesInDir(IN PVCB Vcb, IN PUDF_FILE_INFO DirInfo)
OSSTATUS UDFFlushFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN ULONG FlushFlags=0)
OSSTATUS UDFGetCachedAllocation(IN PVCB Vcb, IN uint32 ParentLocation, OUT PEXTENT_INFO Ext, OUT uint32 *Items, IN uint32 AllocClass)
BOOLEAN UDFCompareFileInfo(IN PUDF_FILE_INFO f1, IN PUDF_FILE_INFO f2)
OSSTATUS UDFReTagDirectory(IN PVCB Vcb, IN OUT PUDF_FILE_INFO FileInfo)
OSSTATUS UDFPretendFileDeleted__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo)
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)
VOID UDFVRelease(IN PVCB Vcb)
OSSTATUS UDFLoadPartDesc(PVCB Vcb, int8 *Buf)
OSSTATUS UDFVInit(IN PVCB Vcb)
OSSTATUS UDFCreateStreamDir__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, OUT PUDF_FILE_INFO *_SDirInfo)
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)
OSSTATUS UDFBuildFreeSpaceBitmap(IN PVCB Vcb, IN uint32 PartNdx, IN PPARTITION_HEADER_DESC phd, IN uint32 Lba)
uint32 UDFGetMappingLength(IN PEXTENT_MAP Extent)
LONG UDFFindDloc(IN PVCB Vcb, IN uint32 Lba)
OSSTATUS UDFVForget(IN PVCB Vcb, IN uint32 BCount, IN uint32 LBA, IN uint32 Flags)
BOOLEAN UDFDirIndexInitScan(IN PUDF_FILE_INFO DirInfo, OUT PUDF_DIR_SCAN_CONTEXT Context, IN uint_di Index)
void UDFFreeDloc(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc)
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)
uint32 UDFMemRealloc(IN int8 *OldBuff, IN uint32 OldLength, OUT int8 **NewBuff, IN uint32 NewLength)
OSSTATUS UDFFlushFE(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN uint32 PartNum)
PEXTENT_MAP UDFShortAllocDescToMapping(IN PVCB Vcb, IN uint32 PartNum, IN PLONG_AD AllocDesc, IN uint32 AllocDescLength, IN uint32 SubCallCount, OUT PEXTENT_INFO AllocLoc)
OSSTATUS UDFDirIndexTrunc(IN PDIR_INDEX_HDR *_hDirNdx, IN uint_di d)
void UDFFlushFESpace(IN PVCB Vcb, IN PUDF_DATALOC_INFO Dloc, IN BOOLEAN Discard=FLUSH_FE_KEEP)
void UDFChangeFileLinkCount(IN PUDF_FILE_INFO FileInfo, IN BOOLEAN Increase)
uint32 __fastcall UDFPartLbaToPhys(IN PVCB Vcb, IN lb_addr *Addr)
void __fastcall UDFDOSName201(IN OUT PUNICODE_STRING DosName, IN PUNICODE_STRING UdfName, IN BOOLEAN KeepIntact)
#define STATUS_NOT_A_DIRECTORY
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
static GLenum _GLUfuncptr fn
_Must_inspect_result_ _In_ ULONG Flags
_Out_ PUNICODE_STRING DosName
static unsigned int block