DPRINT("FindFile: Path %wZ\n",&Parent->PathNameU);
PathNameBufferLength = LONGNAME_MAX_LENGTH * sizeof(WCHAR);
- PathNameBuffer = ExAllocatePoolWithTag(NonPagedPool, PathNameBufferLength + sizeof(WCHAR), TAG_VFAT);
+ PathNameBuffer = ExAllocatePoolWithTag(NonPagedPool, PathNameBufferLength + sizeof(WCHAR), TAG_NAME);
if (!PathNameBuffer)
{
return STATUS_INSUFFICIENT_RESOURCES;
Status = STATUS_UNSUCCESSFUL;
}
vfatReleaseFCB(DeviceExt, rcFcb);
- ExFreePool(PathNameBuffer);
+ ExFreePoolWithTag(PathNameBuffer, TAG_NAME);
return Status;
}
}
Status = RtlUpcaseUnicodeString(&FileToFindUpcase, FileToFindU, TRUE);
if (!NT_SUCCESS(Status))
{
- ExFreePool(PathNameBuffer);
+ ExFreePoolWithTag(PathNameBuffer, TAG_NAME);
return Status;
}
CcUnpinData(Context);
}
RtlFreeUnicodeString(&FileToFindUpcase);
- ExFreePool(PathNameBuffer);
+ ExFreePoolWithTag(PathNameBuffer, TAG_NAME);
return STATUS_SUCCESS;
}
DirContext->DirIndex++;
}
RtlFreeUnicodeString(&FileToFindUpcase);
- ExFreePool(PathNameBuffer);
+ ExFreePoolWithTag(PathNameBuffer, TAG_NAME);
return Status;
}
pCcb->SearchPattern.MaximumLength = pSearchPattern->Length + sizeof(WCHAR);
pCcb->SearchPattern.Buffer = ExAllocatePoolWithTag(NonPagedPool,
pCcb->SearchPattern.MaximumLength,
- TAG_VFAT);
+ TAG_SEARCH);
if (!pCcb->SearchPattern.Buffer)
{
ExReleaseResourceLite(&pFcb->MainResource);
pCcb->SearchPattern.MaximumLength = 2 * sizeof(WCHAR);
pCcb->SearchPattern.Buffer = ExAllocatePoolWithTag(NonPagedPool,
2 * sizeof(WCHAR),
- TAG_VFAT);
+ TAG_SEARCH);
if (!pCcb->SearchPattern.Buffer)
{
ExReleaseResourceLite(&pFcb->MainResource);
/* nb of entry needed for long name+normal entry */
nbSlots = (DirContext.LongNameU.Length / sizeof(WCHAR) + 12) / 13 + 1;
DPRINT("NameLen= %u, nbSlots =%u\n", DirContext.LongNameU.Length / sizeof(WCHAR), nbSlots);
- Buffer = ExAllocatePoolWithTag(NonPagedPool, (nbSlots - 1) * sizeof(FAT_DIR_ENTRY), TAG_VFAT);
+ Buffer = ExAllocatePoolWithTag(NonPagedPool, (nbSlots - 1) * sizeof(FAT_DIR_ENTRY), TAG_DIRENT);
if (Buffer == NULL)
{
return STATUS_INSUFFICIENT_RESOURCES;
}
if (i == 100) /* FIXME : what to do after this ? */
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
return STATUS_UNSUCCESSFUL;
}
IsNameLegal = RtlIsNameLegalDOS8Dot3(&DirContext.ShortNameU, &NameA, &SpacesFound);
/* try to find nbSlots contiguous entries frees in directory */
if (!vfatFindDirSpace(DeviceExt, ParentFcb, nbSlots, &DirContext.StartIndex))
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
return STATUS_DISK_FULL;
}
DirContext.DirIndex = DirContext.StartIndex + nbSlots - 1;
Status = NextCluster(DeviceExt, 0, &CurrentCluster, TRUE);
if (CurrentCluster == 0xffffffff || !NT_SUCCESS(Status))
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
if (!NT_SUCCESS(Status))
{
return Status;
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
_SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
_SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
_SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;
}
if (!NT_SUCCESS(Status))
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
return Status;
}
Status = vfatFCBInitializeCacheFromVolume(DeviceExt, (*Fcb));
if (!NT_SUCCESS(Status))
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
return Status;
}
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
_SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;
CcSetDirtyPinnedData(Context, NULL);
CcUnpinData(Context);
}
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
DPRINT("addentry ok\n");
return STATUS_SUCCESS;
}
{
if (pCcb->SearchPattern.Buffer)
{
- ExFreePoolWithTag(pCcb->SearchPattern.Buffer, TAG_VFAT);
+ ExFreePoolWithTag(pCcb->SearchPattern.Buffer, TAG_SEARCH);
}
ExFreeToNPagedLookasideList(&VfatGlobalData->CcbLookasideList, pCcb);
}
NewName.MaximumLength += sizeof(WCHAR) + ((PVFATFCB)TargetFileObject->FsContext)->PathNameU.Length;
}
- NewName.Buffer = ExAllocatePoolWithTag(NonPagedPool, NewName.MaximumLength, TAG_VFAT);
+ NewName.Buffer = ExAllocatePoolWithTag(NonPagedPool, NewName.MaximumLength, TAG_NAME);
if (NewName.Buffer == NULL)
{
if (TargetFileObject != NULL)
NewName.Length = 0;
NewName.MaximumLength = TargetFileObject->FileName.Length + ((PVFATFCB)TargetFileObject->FsContext)->PathNameU.Length + sizeof(WCHAR);
- NewName.Buffer = ExAllocatePoolWithTag(NonPagedPool, NewName.MaximumLength, TAG_VFAT);
+ NewName.Buffer = ExAllocatePoolWithTag(NonPagedPool, NewName.MaximumLength, TAG_NAME);
if (NewName.Buffer == NULL)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
ASSERT(NewReferences == ParentFCB->RefCount - 1); // new file
Cleanup:
if (ParentFCB != NULL) vfatReleaseFCB(DeviceExt, ParentFCB);
- if (NewName.Buffer != NULL) ExFreePoolWithTag(NewName.Buffer, TAG_VFAT);
+ if (NewName.Buffer != NULL) ExFreePoolWithTag(NewName.Buffer, TAG_NAME);
if (RenameInfo->RootDirectory != NULL) ObDereferenceObject(RootFileObject);
return Status;
if (*RecognizedFS)
{
- Boot = ExAllocatePoolWithTag(NonPagedPool, DiskGeometry.BytesPerSector, TAG_VFAT);
+ Boot = ExAllocatePoolWithTag(NonPagedPool, DiskGeometry.BytesPerSector, TAG_BUFFER);
if (Boot == NULL)
{
return STATUS_INSUFFICIENT_RESOURCES;
}
}
- ExFreePool(Boot);
+ ExFreePoolWithTag(Boot, TAG_BUFFER);
}
if (!*RecognizedFS && PartitionInfoIsValid)
{
- BootFatX = ExAllocatePoolWithTag(NonPagedPool, sizeof(struct _BootSectorFatX), TAG_VFAT);
+ BootFatX = ExAllocatePoolWithTag(NonPagedPool, sizeof(struct _BootSectorFatX), TAG_BUFFER);
if (BootFatX == NULL)
{
*RecognizedFS=FALSE;
}
}
}
- ExFreePool(BootFatX);
+ ExFreePoolWithTag(BootFatX, TAG_BUFFER);
}
DPRINT("VfatHasFileSystem done\n");
ASSERT(DeviceObject->Type == 3);
- Buffer = ExAllocatePoolWithTag(NonPagedPool, PAGE_SIZE, TAG_VFAT);
+ Buffer = ExAllocatePoolWithTag(NonPagedPool, PAGE_SIZE, TAG_DIRENT);
if (Buffer != NULL)
{
Status = VfatReadDisk(DeviceObject, &FileOffset, PAGE_SIZE, (PUCHAR)Buffer, TRUE);
if (!NT_SUCCESS(Status))
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
}
else
{
}
else if (NoCache)
{
- ExFreePoolWithTag(Buffer, TAG_VFAT);
+ ExFreePoolWithTag(Buffer, TAG_DIRENT);
}
}
ExInitializeResourceLite(&DeviceExt->DirResource);
DeviceExt->IoVPB = DeviceObject->Vpb;
- DeviceExt->SpareVPB = ExAllocatePoolWithTag(NonPagedPool, sizeof(VPB), TAG_VFAT);
+ DeviceExt->SpareVPB = ExAllocatePoolWithTag(NonPagedPool, sizeof(VPB), TAG_VPB);
if (DeviceExt->SpareVPB == NULL)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
if (DeviceExt && DeviceExt->FATFileObject)
ObDereferenceObject (DeviceExt->FATFileObject);
if (DeviceExt && DeviceExt->SpareVPB)
- ExFreePoolWithTag(DeviceExt->SpareVPB, TAG_VFAT);
+ ExFreePoolWithTag(DeviceExt->SpareVPB, TAG_VPB);
if (DeviceExt && DeviceExt->Statistics)
ExFreePoolWithTag(DeviceExt->Statistics, TAG_STATS);
if (Fcb)
#define TAG_CCB 'CtaF'
#define TAG_FCB 'FtaF'
#define TAG_IRP 'ItaF'
-#define TAG_VFAT 'TAFV'
#define TAG_CLOSE 'xtaF'
#define TAG_STATS 'VtaF'
#define TAG_BUFFER 'OtaF'
+#define TAG_VPB 'vtaF'
+#define TAG_NAME 'ntaF'
+#define TAG_SEARCH 'LtaF'
+#define TAG_DIRENT 'DtaF'
#define ENTRIES_PER_SECTOR (BLOCKSIZE / sizeof(FATDirEntry))