📄 ext2fs.h
字号:
NTSTATUS
Ext2InitializeVcb(
IN PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb,
PEXT2_SUPER_BLOCK Ext2Sb,
PDEVICE_OBJECT TargetDevice,
PDEVICE_OBJECT VolumeDevice,
PVPB Vpb);
VOID
Ext2FreeVcb (
IN PEXT2_VCB Vcb );
// fastio.c
BOOLEAN
Ext2FastIoQueryBasicInfo (
IN PFILE_OBJECT FileObject,
IN BOOLEAN Wait,
OUT PFILE_BASIC_INFORMATION Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
BOOLEAN
Ext2FastIoQueryStandardInfo (
IN PFILE_OBJECT FileObject,
IN BOOLEAN Wait,
OUT PFILE_STANDARD_INFORMATION Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
BOOLEAN
Ext2FastIoLock (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
IN PEPROCESS Process,
IN ULONG Key,
IN BOOLEAN FailImmediately,
IN BOOLEAN ExclusiveLock,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
BOOLEAN
Ext2FastIoUnlockSingle (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
IN PEPROCESS Process,
IN ULONG Key,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
BOOLEAN
Ext2FastIoUnlockAll (
IN PFILE_OBJECT FileObject,
IN PEPROCESS Process,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
BOOLEAN
Ext2FastIoUnlockAllByKey (
IN PFILE_OBJECT FileObject,
IN PEPROCESS Process,
IN ULONG Key,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
BOOLEAN
Ext2FastIoQueryNetworkOpenInfo (
IN PFILE_OBJECT FileObject,
IN BOOLEAN Wait,
OUT PFILE_NETWORK_OPEN_INFORMATION Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
BOOLEAN
Ext2FastIoQueryNetworkOpenInfo (
IN PFILE_OBJECT FileObject,
IN BOOLEAN Wait,
OUT PFILE_NETWORK_OPEN_INFORMATION Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
// lock.c
NTSTATUS
Ext2LockControl (
IN PEXT2_IRP_CONTEXT IrpContext );
// cmcb.c
BOOLEAN
Ext2AcquireForLazyWrite (
IN PVOID Context,
IN BOOLEAN Wait );
VOID
Ext2ReleaseFromLazyWrite (
IN PVOID Context );
BOOLEAN
Ext2AcquireForReadAhead (
IN PVOID Context,
IN BOOLEAN Wait );
BOOLEAN
Ext2NoOpAcquire (
IN PVOID Fcb,
IN BOOLEAN Wait );
VOID
Ext2NoOpRelease (
IN PVOID Fcb );
VOID
Ext2ReleaseFromReadAhead (
IN PVOID Context );
NTSTATUS
Ext2Close (
IN PEXT2_IRP_CONTEXT IrpContext );
VOID
Ext2QueueCloseRequest (
IN PEXT2_IRP_CONTEXT IrpContext );
VOID
Ext2DeQueueCloseRequest (
IN PVOID Context );
PEXT2_FCB
Ext2SearchFcbList(
IN PEXT2_VCB Vcb,
IN ULONG inode);
NTSTATUS
Ext2ScanDir (
IN PEXT2_VCB Vcb,
IN PEXT2_MCB ParentMcb,
IN PUNICODE_STRING FileName,
IN OUT PULONG Index,
IN PEXT2_INODE ext2_inode,
IN PEXT2_DIR_ENTRY2 dir_entry);
NTSTATUS
Ext2LookupFileName (
IN PEXT2_VCB Vcb,
IN PUNICODE_STRING FullFileName,
IN PEXT2_FCB ParentFcb,
OUT PEXT2_MCB * Ext2Mcb,
IN OUT PEXT2_INODE ext2_inode);
NTSTATUS
Ext2CreateFile(
IN PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb );
NTSTATUS
Ext2CreateVolume(
IN PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb );
NTSTATUS
Ext2Create (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2CreateInode(
PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb,
PEXT2_FCB pParentFcb,
ULONG Type,
ULONG FileAttr,
PUNICODE_STRING FileName);
NTSTATUS
Ext2Read (
IN PEXT2_IRP_CONTEXT IrpContext );
// Fileinfo.c
NTSTATUS
Ext2QueryInformation (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2SetInformation (
IN PEXT2_IRP_CONTEXT IrpContext);
BOOLEAN
Ext2ExpandFileAllocation (
PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb,
PEXT2_FCB Fcb,
PLARGE_INTEGER AllocationSize );
BOOLEAN
Ext2TruncateFileAllocation (
PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb,
PEXT2_FCB Fcb,
PLARGE_INTEGER AllocationSize );
NTSTATUS
Ext2SetDispositionInfo(
PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb,
PEXT2_FCB Fcb,
BOOLEAN bDelete );
NTSTATUS
Ext2SetRenameInfo(
PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb,
PEXT2_FCB Fcb );
// Volinfo.c
NTSTATUS
Ext2QueryVolumeInformation (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2SetVolumeInformation (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2CharToWchar (
IN OUT PWCHAR Destination,
IN PCHAR Source,
IN ULONG Length );
NTSTATUS
Ext2WcharToChar (
IN OUT PCHAR Destination,
IN PWCHAR Source,
IN ULONG Length);
NTSTATUS
Ext2LockUserBuffer (
IN PIRP Irp,
IN ULONG Length,
IN LOCK_OPERATION Operation);
PVOID
Ext2GetUserBuffer (
IN PIRP Irp );
ULONG
Ext2GetInfoLength(
IN FILE_INFORMATION_CLASS FileInformationClass );
ULONG
Ext2ProcessDirEntry(
IN PEXT2_VCB Vcb,
IN FILE_INFORMATION_CLASS FileInformationClass,
IN ULONG in,
IN PVOID Buffer,
IN ULONG UsedLength,
IN ULONG Length,
IN ULONG FileIndex,
IN UNICODE_STRING* pName,
IN BOOLEAN Single );
NTSTATUS
Ext2QueryDirectory (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2NotifyChangeDirectory (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2DirectoryControl (
IN PEXT2_IRP_CONTEXT IrpContext);
NTSTATUS
Ext2CompleteIrpContext (
IN PEXT2_IRP_CONTEXT IrpContext,
IN NTSTATUS Status );
NTSTATUS
Ext2QueueRequest (
IN PEXT2_IRP_CONTEXT IrpContext );
VOID
Ext2DeQueueRequest (
IN PVOID Context );
NTSTATUS
Ext2Cleanup (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2DeviceControlNormal (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2PrepareToUnload (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2DeviceControl (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2VerifyVolume (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2IsVolumeMounted (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2DismountVolume (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2PurgeVolume (
IN PEXT2_VCB Vcb,
IN BOOLEAN FlushBeforePurge);
NTSTATUS
Ext2PurgeFile (
IN PEXT2_FCB Fcb,
IN BOOLEAN FlushBeforePurge);
NTSTATUS
Ext2LockVolume (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2UnlockVolume (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2UserFsRequest (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2MountVolume (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2FileSystemControl (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2DispatchRequest (
IN PEXT2_IRP_CONTEXT IrpContext );
NTSTATUS
Ext2ExceptionFilter (
IN PEXT2_IRP_CONTEXT IrpContext,
IN NTSTATUS ExceptionCode );
NTSTATUS
Ext2ExceptionHandler (
IN PEXT2_IRP_CONTEXT IrpContext );
VOID
Ext2SetVpbFlag (
IN PVPB Vpb,
IN USHORT Flag );
VOID
Ext2ClearVpbFlag (
IN PVPB Vpb,
IN USHORT Flag );
NTSTATUS
Ext2BuildRequest (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
// init.c
extern PEXT2_GLOBAL gExt2Global;
BOOLEAN
Ext2QueryRegistry(
IN PUNICODE_STRING RegistryPath,
PULONG WritingSupport );
NTSTATUS DriverEntry (
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath );
BOOLEAN
Ext2FastIoCheckIfPossible (
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 );
PSZ
Ext2DbgNtStatusToString (
IN NTSTATUS Status );
#if DBG
BOOLEAN
Ext2FastIoRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
IN ULONG LockKey,
OUT PVOID Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject);
BOOLEAN
Ext2FastIoWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
IN ULONG LockKey,
OUT PVOID Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject );
#define Ext2CompleteRequest(Irp, PriorityBoost) \
Ext2DbgPrintComplete(Irp); \
IoCompleteRequest(Irp, PriorityBoost)
#else
#define Ext2CompleteRequest(Irp, PriorityBoost) \
IoCompleteRequest(Irp, PriorityBoost)
#endif // DBG
// Flush.c
NTSTATUS
Ext2FlushVolume (
IN PEXT2_VCB Vcb,
BOOLEAN bShutDown );
NTSTATUS
Ext2FlushFile (
IN PEXT2_FCB Fcb );
NTSTATUS
Ext2Flush (
IN PEXT2_IRP_CONTEXT IrpContext );
// Shutdown.c
NTSTATUS
Ext2ShutDown (
IN PEXT2_IRP_CONTEXT IrpContext );
// Write.c
BOOLEAN
Ext2ZeroHoles (
IN PEXT2_IRP_CONTEXT IrpContext,
IN PEXT2_VCB Vcb,
IN PFILE_OBJECT FileObject,
IN LONGLONG Offset,
IN LONGLONG Count );
NTSTATUS
Ext2Write (
IN PEXT2_IRP_CONTEXT IrpContext );
BOOLEAN
Ext2SupersedeOrOverWriteFile(
PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb,
PEXT2_FCB Fcb,
ULONG Disposition );
BOOLEAN Ext2IsDirectoryEmpty (
PEXT2_VCB Vcb,
PEXT2_FCB Fcb );
BOOLEAN
Ext2DeleteFile(
PEXT2_IRP_CONTEXT IrpContext,
PEXT2_VCB Vcb,
PEXT2_FCB Fcb );
//
// These decls. are missed out at times.
//
#if (_WIN32_WINNT == 0x0500)
USHORT
FASTCALL
RtlUshortByteSwap(
IN USHORT Source );
ULONG
FASTCALL
RtlUlongByteSwap(
IN ULONG Source );
ULONGLONG
FASTCALL
RtlUlonglongByteSwap(
IN ULONGLONG Source );
#endif // (_WIN32_WINNT >= 0x0500)
/////////////////////////////////////////////////////////////////////////////
#endif // __EXT2FS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -