mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 18:45:46 +00:00
- Renamed all control block structures to (P)NTFS_xCB
- Added an identifier field to those structures (not yet used) svn path=/trunk/; revision=32691
This commit is contained in:
parent
4f6b034f60
commit
1498b141eb
8 changed files with 103 additions and 97 deletions
|
@ -43,13 +43,13 @@ NtfsCloseFile(PDEVICE_EXTENSION DeviceExt,
|
|||
* FUNCTION: Closes a file
|
||||
*/
|
||||
{
|
||||
PCCB Ccb;
|
||||
PNTFS_CCB Ccb;
|
||||
|
||||
DPRINT("NtfsCloseFile(DeviceExt %p, FileObject %p)\n",
|
||||
DeviceExt,
|
||||
FileObject);
|
||||
|
||||
Ccb = (PCCB)(FileObject->FsContext2);
|
||||
Ccb = (PNTFS_CCB)(FileObject->FsContext2);
|
||||
|
||||
DPRINT("Ccb %p\n", Ccb);
|
||||
if (Ccb == NULL)
|
||||
|
|
|
@ -41,7 +41,7 @@ NtfsMakeAbsoluteFilename(PFILE_OBJECT pFileObject,
|
|||
PWSTR *pAbsoluteFilename)
|
||||
{
|
||||
PWSTR rcName;
|
||||
PFCB Fcb;
|
||||
PNTFS_FCB Fcb;
|
||||
|
||||
DPRINT("try related for %S\n", pRelativeFileName);
|
||||
Fcb = pFileObject->FsContext;
|
||||
|
@ -82,8 +82,8 @@ NtfsOpenFile(PDEVICE_EXTENSION DeviceExt,
|
|||
* FUNCTION: Opens a file
|
||||
*/
|
||||
{
|
||||
PFCB ParentFcb;
|
||||
PFCB Fcb;
|
||||
PNTFS_FCB ParentFcb;
|
||||
PNTFS_FCB Fcb;
|
||||
NTSTATUS Status;
|
||||
PWSTR AbsFileName = NULL;
|
||||
|
||||
|
|
|
@ -489,8 +489,8 @@ NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext)
|
|||
ULONG FileIndex = 0;
|
||||
PUCHAR Buffer = NULL;
|
||||
PFILE_NAMES_INFORMATION Buffer0 = NULL;
|
||||
PFCB Fcb;
|
||||
PCCB Ccb;
|
||||
PNTFS_FCB Fcb;
|
||||
PNTFS_CCB Ccb;
|
||||
// FCB TempFcb;
|
||||
BOOLEAN First = FALSE;
|
||||
PIO_STACK_LOCATION Stack;
|
||||
|
@ -507,8 +507,8 @@ NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext)
|
|||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
||||
FileObject = Stack->FileObject;
|
||||
|
||||
Ccb = (PCCB)FileObject->FsContext2;
|
||||
Fcb = (PFCB)FileObject->FsContext;
|
||||
Ccb = (PNTFS_CCB)FileObject->FsContext2;
|
||||
Fcb = (PNTFS_FCB)FileObject->FsContext;
|
||||
|
||||
/* Obtain the callers parameters */
|
||||
BufferLength = Stack->Parameters.QueryDirectory.Length;
|
||||
|
|
|
@ -67,13 +67,13 @@ NtfsWSubString(PWCHAR pTarget, const PWCHAR pSource, size_t pLength)
|
|||
}
|
||||
|
||||
|
||||
PFCB
|
||||
PNTFS_FCB
|
||||
NtfsCreateFCB(PCWSTR FileName)
|
||||
{
|
||||
PFCB Fcb;
|
||||
PNTFS_FCB Fcb;
|
||||
|
||||
Fcb = ExAllocatePoolWithTag(NonPagedPool, sizeof(FCB), TAG_FCB);
|
||||
RtlZeroMemory(Fcb, sizeof(FCB));
|
||||
Fcb = ExAllocatePoolWithTag(NonPagedPool, sizeof(NTFS_FCB), TAG_FCB);
|
||||
RtlZeroMemory(Fcb, sizeof(NTFS_FCB));
|
||||
|
||||
if (FileName)
|
||||
{
|
||||
|
@ -95,7 +95,7 @@ NtfsCreateFCB(PCWSTR FileName)
|
|||
|
||||
|
||||
VOID
|
||||
NtfsDestroyFCB(PFCB Fcb)
|
||||
NtfsDestroyFCB(PNTFS_FCB Fcb)
|
||||
{
|
||||
ExDeleteResourceLite(&Fcb->MainResource);
|
||||
|
||||
|
@ -104,7 +104,7 @@ NtfsDestroyFCB(PFCB Fcb)
|
|||
|
||||
|
||||
BOOLEAN
|
||||
NtfsFCBIsDirectory(PFCB Fcb)
|
||||
NtfsFCBIsDirectory(PNTFS_FCB Fcb)
|
||||
{
|
||||
// return(Fcb->entry.Attrib & FILE_ATTRIBUTE_DIRECTORY);
|
||||
// return(Fcb->Entry.FileFlags & 0x02);
|
||||
|
@ -113,15 +113,15 @@ NtfsFCBIsDirectory(PFCB Fcb)
|
|||
|
||||
|
||||
BOOLEAN
|
||||
NtfsFCBIsRoot(PFCB Fcb)
|
||||
NtfsFCBIsRoot(PNTFS_FCB Fcb)
|
||||
{
|
||||
return(wcscmp(Fcb->PathName, L"\\") == 0);
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
NtfsGrabFCB(PDEVICE_EXTENSION Vcb,
|
||||
PFCB Fcb)
|
||||
NtfsGrabFCB(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb)
|
||||
{
|
||||
KIRQL oldIrql;
|
||||
|
||||
|
@ -137,8 +137,8 @@ NtfsGrabFCB(PDEVICE_EXTENSION Vcb,
|
|||
|
||||
|
||||
VOID
|
||||
NtfsReleaseFCB(PDEVICE_EXTENSION Vcb,
|
||||
PFCB Fcb)
|
||||
NtfsReleaseFCB(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb)
|
||||
{
|
||||
KIRQL oldIrql;
|
||||
|
||||
|
@ -160,8 +160,8 @@ NtfsReleaseFCB(PDEVICE_EXTENSION Vcb,
|
|||
|
||||
|
||||
VOID
|
||||
NtfsAddFCBToTable(PDEVICE_EXTENSION Vcb,
|
||||
PFCB Fcb)
|
||||
NtfsAddFCBToTable(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb)
|
||||
{
|
||||
KIRQL oldIrql;
|
||||
|
||||
|
@ -172,12 +172,12 @@ NtfsAddFCBToTable(PDEVICE_EXTENSION Vcb,
|
|||
}
|
||||
|
||||
|
||||
PFCB
|
||||
NtfsGrabFCBFromTable(PDEVICE_EXTENSION Vcb,
|
||||
PNTFS_FCB
|
||||
NtfsGrabFCBFromTable(PNTFS_VCB Vcb,
|
||||
PCWSTR FileName)
|
||||
{
|
||||
KIRQL oldIrql;
|
||||
PFCB Fcb;
|
||||
PNTFS_FCB Fcb;
|
||||
PLIST_ENTRY current_entry;
|
||||
|
||||
KeAcquireSpinLock(&Vcb->FcbListLock, &oldIrql);
|
||||
|
@ -194,7 +194,7 @@ NtfsGrabFCBFromTable(PDEVICE_EXTENSION Vcb,
|
|||
current_entry = Vcb->FcbListHead.Flink;
|
||||
while (current_entry != &Vcb->FcbListHead)
|
||||
{
|
||||
Fcb = CONTAINING_RECORD(current_entry, FCB, FcbListEntry);
|
||||
Fcb = CONTAINING_RECORD(current_entry, NTFS_FCB, FcbListEntry);
|
||||
|
||||
DPRINT("Comparing '%S' and '%S'\n", FileName, Fcb->PathName);
|
||||
if (_wcsicmp(FileName, Fcb->PathName) == 0)
|
||||
|
@ -215,22 +215,22 @@ NtfsGrabFCBFromTable(PDEVICE_EXTENSION Vcb,
|
|||
|
||||
|
||||
NTSTATUS
|
||||
NtfsFCBInitializeCache(PVCB Vcb,
|
||||
PFCB Fcb)
|
||||
NtfsFCBInitializeCache(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb)
|
||||
{
|
||||
PFILE_OBJECT FileObject;
|
||||
NTSTATUS Status;
|
||||
PCCB newCCB;
|
||||
PNTFS_CCB newCCB;
|
||||
|
||||
FileObject = IoCreateStreamFileObject(NULL, Vcb->StorageDevice);
|
||||
|
||||
newCCB = ExAllocatePoolWithTag(NonPagedPool, sizeof(CCB), TAG_CCB);
|
||||
newCCB = ExAllocatePoolWithTag(NonPagedPool, sizeof(NTFS_CCB), TAG_CCB);
|
||||
if (newCCB == NULL)
|
||||
{
|
||||
return(STATUS_INSUFFICIENT_RESOURCES);
|
||||
}
|
||||
RtlZeroMemory(newCCB,
|
||||
sizeof(CCB));
|
||||
sizeof(NTFS_CCB));
|
||||
|
||||
FileObject->SectionObjectPointer = &Fcb->SectionObjectPointers;
|
||||
FileObject->FsContext = Fcb;
|
||||
|
@ -253,10 +253,10 @@ NtfsFCBInitializeCache(PVCB Vcb,
|
|||
}
|
||||
|
||||
|
||||
PFCB
|
||||
NtfsMakeRootFCB(PDEVICE_EXTENSION Vcb)
|
||||
PNTFS_FCB
|
||||
NtfsMakeRootFCB(PNTFS_VCB Vcb)
|
||||
{
|
||||
PFCB Fcb;
|
||||
PNTFS_FCB Fcb;
|
||||
|
||||
Fcb = NtfsCreateFCB(L"\\");
|
||||
|
||||
|
@ -279,10 +279,10 @@ NtfsMakeRootFCB(PDEVICE_EXTENSION Vcb)
|
|||
}
|
||||
|
||||
|
||||
PFCB
|
||||
NtfsOpenRootFCB(PDEVICE_EXTENSION Vcb)
|
||||
PNTFS_FCB
|
||||
NtfsOpenRootFCB(PNTFS_VCB Vcb)
|
||||
{
|
||||
PFCB Fcb;
|
||||
PNTFS_FCB Fcb;
|
||||
|
||||
Fcb = NtfsGrabFCBFromTable(Vcb, L"\\");
|
||||
if (Fcb == NULL)
|
||||
|
@ -386,18 +386,18 @@ NtfsMakeFCBFromDirEntry(PVCB Vcb,
|
|||
|
||||
|
||||
NTSTATUS
|
||||
NtfsAttachFCBToFileObject(PDEVICE_EXTENSION Vcb,
|
||||
PFCB Fcb,
|
||||
NtfsAttachFCBToFileObject(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb,
|
||||
PFILE_OBJECT FileObject)
|
||||
{
|
||||
PCCB newCCB;
|
||||
PNTFS_CCB newCCB;
|
||||
|
||||
newCCB = ExAllocatePoolWithTag(NonPagedPool, sizeof(CCB), TAG_CCB);
|
||||
newCCB = ExAllocatePoolWithTag(NonPagedPool, sizeof(NTFS_CCB), TAG_CCB);
|
||||
if (newCCB == NULL)
|
||||
{
|
||||
return(STATUS_INSUFFICIENT_RESOURCES);
|
||||
}
|
||||
memset(newCCB, 0, sizeof(CCB));
|
||||
memset(newCCB, 0, sizeof(NTFS_CCB));
|
||||
|
||||
FileObject->SectionObjectPointer = &Fcb->SectionObjectPointers;
|
||||
FileObject->FsContext = Fcb;
|
||||
|
@ -423,10 +423,10 @@ NtfsAttachFCBToFileObject(PDEVICE_EXTENSION Vcb,
|
|||
|
||||
|
||||
static NTSTATUS
|
||||
NtfsDirFindFile(PDEVICE_EXTENSION DeviceExt,
|
||||
PFCB DirectoryFcb,
|
||||
NtfsDirFindFile(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB DirectoryFcb,
|
||||
PWSTR FileToFind,
|
||||
PFCB *FoundFCB)
|
||||
PNTFS_FCB *FoundFCB)
|
||||
{
|
||||
#if 0
|
||||
WCHAR TempName[2];
|
||||
|
@ -534,17 +534,17 @@ NtfsDirFindFile(PDEVICE_EXTENSION DeviceExt,
|
|||
|
||||
|
||||
NTSTATUS
|
||||
NtfsGetFCBForFile(PDEVICE_EXTENSION Vcb,
|
||||
PFCB *pParentFCB,
|
||||
PFCB *pFCB,
|
||||
NtfsGetFCBForFile(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB *pParentFCB,
|
||||
PNTFS_FCB *pFCB,
|
||||
const PWSTR pFileName)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
WCHAR pathName [MAX_PATH];
|
||||
WCHAR elementName [MAX_PATH];
|
||||
PWCHAR currentElement;
|
||||
PFCB FCB;
|
||||
PFCB parentFCB;
|
||||
PNTFS_FCB FCB;
|
||||
PNTFS_FCB parentFCB;
|
||||
|
||||
DPRINT("NtfsGetFCBForFile(%p, %p, %p, '%S')\n",
|
||||
Vcb,
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
static NTSTATUS
|
||||
NtfsGetStandardInformation(PFCB Fcb,
|
||||
NtfsGetStandardInformation(PNTFS_FCB Fcb,
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_STANDARD_INFORMATION StandardInfo,
|
||||
PULONG BufferLength)
|
||||
|
@ -91,7 +91,7 @@ NtfsGetPositionInformation(PFILE_OBJECT FileObject,
|
|||
|
||||
static NTSTATUS
|
||||
NtfsGetBasicInformation(PFILE_OBJECT FileObject,
|
||||
PFCB Fcb,
|
||||
PNTFS_FCB Fcb,
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_BASIC_INFORMATION BasicInfo,
|
||||
PULONG BufferLength)
|
||||
|
@ -123,7 +123,7 @@ NtfsGetBasicInformation(PFILE_OBJECT FileObject,
|
|||
|
||||
static NTSTATUS
|
||||
NtfsGetNameInformation(PFILE_OBJECT FileObject,
|
||||
PFCB Fcb,
|
||||
PNTFS_FCB Fcb,
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_NAME_INFORMATION NameInfo,
|
||||
PULONG BufferLength)
|
||||
|
@ -157,7 +157,7 @@ NtfsGetNameInformation(PFILE_OBJECT FileObject,
|
|||
|
||||
|
||||
static NTSTATUS
|
||||
NtfsGetInternalInformation(PFCB Fcb,
|
||||
NtfsGetInternalInformation(PNTFS_FCB Fcb,
|
||||
PFILE_INTERNAL_INFORMATION InternalInfo,
|
||||
PULONG BufferLength)
|
||||
{
|
||||
|
@ -188,7 +188,7 @@ NtfsFsdQueryInformation(PDEVICE_OBJECT DeviceObject,
|
|||
FILE_INFORMATION_CLASS FileInformationClass;
|
||||
PIO_STACK_LOCATION Stack;
|
||||
PFILE_OBJECT FileObject;
|
||||
PFCB Fcb;
|
||||
PNTFS_FCB Fcb;
|
||||
PVOID SystemBuffer;
|
||||
ULONG BufferLength;
|
||||
|
||||
|
|
|
@ -308,8 +308,8 @@ NtfsMountVolume(PDEVICE_OBJECT DeviceObject,
|
|||
PDEVICE_OBJECT NewDeviceObject = NULL;
|
||||
PDEVICE_OBJECT DeviceToMount;
|
||||
PIO_STACK_LOCATION Stack;
|
||||
PFCB Fcb = NULL;
|
||||
PCCB Ccb = NULL;
|
||||
PNTFS_FCB Fcb = NULL;
|
||||
PNTFS_CCB Ccb = NULL;
|
||||
PVPB Vpb;
|
||||
NTSTATUS Status;
|
||||
|
||||
|
@ -373,7 +373,7 @@ NtfsMountVolume(PDEVICE_OBJECT DeviceObject,
|
|||
}
|
||||
|
||||
Ccb = ExAllocatePoolWithTag(NonPagedPool,
|
||||
sizeof(CCB),
|
||||
sizeof(NTFS_CCB),
|
||||
TAG_CCB);
|
||||
if (Ccb == NULL)
|
||||
{
|
||||
|
@ -381,7 +381,7 @@ NtfsMountVolume(PDEVICE_OBJECT DeviceObject,
|
|||
goto ByeBye;
|
||||
}
|
||||
RtlZeroMemory(Ccb,
|
||||
sizeof(CCB));
|
||||
sizeof(NTFS_CCB));
|
||||
|
||||
DeviceExt->StreamFileObject->FsContext = Fcb;
|
||||
DeviceExt->StreamFileObject->FsContext2 = Ccb;
|
||||
|
|
|
@ -102,7 +102,6 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
|
|||
ObReferenceObject(NtfsGlobalData->DeviceObject);
|
||||
|
||||
ErrorEnd:
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
if (NtfsGlobalData)
|
||||
|
@ -111,7 +110,6 @@ ErrorEnd:
|
|||
ExFreePoolWithTag(NtfsGlobalData, TAG('N', 'D', 'R', 'G'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
|
|
@ -84,9 +84,23 @@ typedef struct _NTFS_INFO
|
|||
|
||||
} NTFS_INFO, *PNTFS_INFO;
|
||||
|
||||
#define NTFS_TYPE_CCB TAG('F','S',0,2)
|
||||
#define NTFS_TYPE_FCB TAG('F','S',0,3)
|
||||
#define NTFS_TYPE_VCB TAG('F','S',0,5)
|
||||
#define NTFS_TYPE_IRP_CONTEST TAG('F','S',0,6)
|
||||
#define NTFS_TYPE_GLOBAL_DATA TAG('F','S',0,7)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ULONG Type;
|
||||
ULONG Size;
|
||||
} NTFSIDENTIFIER, *PNTFSIDENTIFIER;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
NTFSIDENTIFIER Identifier;
|
||||
|
||||
ERESOURCE DirResource;
|
||||
// ERESOURCE FatResource;
|
||||
|
||||
|
@ -100,7 +114,7 @@ typedef struct
|
|||
NTFS_INFO NtfsInfo;
|
||||
|
||||
|
||||
} DEVICE_EXTENSION, *PDEVICE_EXTENSION, VCB, *PVCB;
|
||||
} DEVICE_EXTENSION, *PDEVICE_EXTENSION, NTFS_VCB, *PNTFS_VCB;
|
||||
|
||||
|
||||
#define FCB_CACHE_INITIALIZED 0x0001
|
||||
|
@ -110,6 +124,8 @@ typedef struct
|
|||
|
||||
typedef struct _FCB
|
||||
{
|
||||
NTFSIDENTIFIER Identifier;
|
||||
|
||||
FSRTL_COMMON_FCB_HEADER RFCB;
|
||||
SECTION_OBJECT_POINTERS SectionObjectPointers;
|
||||
|
||||
|
@ -133,11 +149,12 @@ typedef struct _FCB
|
|||
// DIR_RECORD Entry;
|
||||
|
||||
|
||||
} FCB, *PFCB;
|
||||
} NTFS_FCB, *PNTFS_FCB;
|
||||
|
||||
|
||||
typedef struct _CCB
|
||||
typedef struct
|
||||
{
|
||||
NTFSIDENTIFIER Identifier;
|
||||
LIST_ENTRY NextCCB;
|
||||
PFILE_OBJECT PtrFileObject;
|
||||
LARGE_INTEGER CurrentByteOffset;
|
||||
|
@ -147,19 +164,10 @@ typedef struct _CCB
|
|||
PWCHAR DirectorySearchPattern;
|
||||
ULONG LastCluster;
|
||||
ULONG LastOffset;
|
||||
} CCB, *PCCB;
|
||||
} NTFS_CCB, *PNTFS_CCB;
|
||||
|
||||
#define TAG_CCB TAG('I', 'C', 'C', 'B')
|
||||
|
||||
#define NTFS_TYPE_IRP_CONTEST TAG('F','S',0,6)
|
||||
#define NTFS_TYPE_GLOBAL_DATA TAG('F','S',0,7)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ULONG Type;
|
||||
ULONG Size;
|
||||
} NTFSIDENTIFIER, *PNTFSIDENTIFIER;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
NTFSIDENTIFIER Identifier;
|
||||
|
@ -419,53 +427,53 @@ NtfsRelReadAhead(PVOID Context);
|
|||
|
||||
/* fcb.c */
|
||||
|
||||
PFCB
|
||||
PNTFS_FCB
|
||||
NtfsCreateFCB(PCWSTR FileName);
|
||||
|
||||
VOID
|
||||
NtfsDestroyFCB(PFCB Fcb);
|
||||
NtfsDestroyFCB(PNTFS_FCB Fcb);
|
||||
|
||||
BOOLEAN
|
||||
NtfsFCBIsDirectory(PFCB Fcb);
|
||||
NtfsFCBIsDirectory(PNTFS_FCB Fcb);
|
||||
|
||||
BOOLEAN
|
||||
NtfsFCBIsRoot(PFCB Fcb);
|
||||
NtfsFCBIsRoot(PNTFS_FCB Fcb);
|
||||
|
||||
VOID
|
||||
NtfsGrabFCB(PDEVICE_EXTENSION Vcb,
|
||||
PFCB Fcb);
|
||||
NtfsGrabFCB(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb);
|
||||
|
||||
VOID
|
||||
NtfsReleaseFCB(PDEVICE_EXTENSION Vcb,
|
||||
PFCB Fcb);
|
||||
NtfsReleaseFCB(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb);
|
||||
|
||||
VOID
|
||||
NtfsAddFCBToTable(PDEVICE_EXTENSION Vcb,
|
||||
PFCB Fcb);
|
||||
NtfsAddFCBToTable(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb);
|
||||
|
||||
PFCB
|
||||
NtfsGrabFCBFromTable(PDEVICE_EXTENSION Vcb,
|
||||
PNTFS_FCB
|
||||
NtfsGrabFCBFromTable(PNTFS_VCB Vcb,
|
||||
PCWSTR FileName);
|
||||
|
||||
NTSTATUS
|
||||
NtfsFCBInitializeCache(PVCB Vcb,
|
||||
PFCB Fcb);
|
||||
NtfsFCBInitializeCache(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb);
|
||||
|
||||
PFCB
|
||||
NtfsMakeRootFCB(PDEVICE_EXTENSION Vcb);
|
||||
PNTFS_FCB
|
||||
NtfsMakeRootFCB(PNTFS_VCB Vcb);
|
||||
|
||||
PFCB
|
||||
NtfsOpenRootFCB(PDEVICE_EXTENSION Vcb);
|
||||
PNTFS_FCB
|
||||
NtfsOpenRootFCB(PNTFS_VCB Vcb);
|
||||
|
||||
NTSTATUS
|
||||
NtfsAttachFCBToFileObject(PDEVICE_EXTENSION Vcb,
|
||||
PFCB Fcb,
|
||||
NtfsAttachFCBToFileObject(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB Fcb,
|
||||
PFILE_OBJECT FileObject);
|
||||
|
||||
NTSTATUS
|
||||
NtfsGetFCBForFile(PDEVICE_EXTENSION Vcb,
|
||||
PFCB *pParentFCB,
|
||||
PFCB *pFCB,
|
||||
NtfsGetFCBForFile(PNTFS_VCB Vcb,
|
||||
PNTFS_FCB *pParentFCB,
|
||||
PNTFS_FCB *pFCB,
|
||||
const PWSTR pFileName);
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue