📄 specialiofunction.h
字号:
/********************************************************************
created: 2003/08/06
created: 6:8:2003 2:20
filename: g:\temp\FsTPM\FsTPM\FsTPM\FsTPMSpecialIOFunction.h
file path: g:\temp\FsTPM\FsTPM\FsTPM
file base: FsTPMSpecialIOFunction
file ext: h
author: Supermi
purpose:
*********************************************************************/
#pragma once
#include "FsTPM.h"
BOOL IsSomeSpecialFile( PWCHAR WideSource, PFILE_OBJECT pFileObject, PIO_STACK_LOCATION pCurrentIrpStack);
VOID
FsTPMGetFileStandardInformation(
PFILE_OBJECT FileObject,
PFILE_STANDARD_INFORMATION StandardInformation,
PIO_STATUS_BLOCK IoStatusBlock,
PDEVICE_OBJECT pDeviceObject
);
NTSTATUS
KfcIoCompletion(
PDEVICE_OBJECT DeviceObject,
PIRP Irp,
PVOID Context
);
VOID
FsTPMRead(
PFILE_OBJECT FileObject,
PLARGE_INTEGER Offset,
ULONG Length,
PMDL Mdl,
PIO_STATUS_BLOCK IoStatusBlock,
PDEVICE_OBJECT pDevice
);
VOID
FsTPMSetFileAllocation(
PFILE_OBJECT FileObject,
PLARGE_INTEGER AllocationSize,
PIO_STATUS_BLOCK IoStatusBlock,
PDEVICE_OBJECT pDevice
);
VOID
FsTPMWrite(
PFILE_OBJECT FileObject,
PLARGE_INTEGER Offset,
ULONG Length,
PMDL Mdl,
PIO_STATUS_BLOCK IoStatusBlock,
PDEVICE_OBJECT pDevice
);
//-----------------------------------------------------------------------------
/*++
The following functions
Abstract:
This module implements routines to support synchronous API calls to
the next lower file system driver.
Revision History:
02-01-2002 : created
Note:
Thank OSR and Mr. Paul for providing some useful information
--*/
#include "fstpm.h"
#include "Global.h"
#pragma once
VOID FsTPMReferenceDeviceAndVpb(IN PFILE_OBJECT FileObject);
NTSTATUS
FsTPMQueryInformationFile (
IN PVCB Vcb,
IN PFILE_OBJECT FileObject,
IN FILE_INFORMATION_CLASS FileInformationClass,
OUT PVOID FileInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSTATUS
FsTPMSetInformationFile (
IN PVCB Vcb,
IN PFILE_OBJECT FileObject,
IN FILE_INFORMATION_CLASS FileInformationClass,
IN PVOID FileInformation,
IN ULONG Length
);
NTSTATUS
FsTPMSynchronousApiCompletion (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
NTSTATUS
FsTPMCreateFile (
IN PVCB Vcb,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PLARGE_INTEGER AllocationSize OPTIONAL,
IN ULONG FileAttributes,
IN ULONG ShareAccess,
IN ULONG Disposition,
IN ULONG CreateOptions,
IN PVOID EaBuffer OPTIONAL,
IN ULONG EaLength,
IN ULONG Options,
OUT ULONG *Information,
OUT PFILE_OBJECT FileObject,
OUT HANDLE *FileHandle OPTIONAL
);
NTSTATUS
FsTPMCreateDirectory(
const WCHAR *pDir
);
NTSTATUS
GetFileFullNameByObjectA(
IN PFILE_OBJECT FileObject,
IN PHOOK_EXTENSION hookExt,
IN OUT PCHAR pAnsiString,
IN int StringLength
);
NTSTATUS
GetFileFullNameByObjectW(
IN PFILE_OBJECT FileObject,
IN PHOOK_EXTENSION hookExt,
IN OUT PWCHAR pAnsiString,
IN int StringLength
);
NTSTATUS
FsTPMCopyFileByName(
IN WCHAR* TargetFileName,
IN WCHAR* SourceFileName,
IN PFILE_OBJECT pSourceFileObject
);
NTSTATUS
FsTPMCopyFile(
PFILE_OBJECT TargetFileObject,
PFILE_OBJECT SourceFileObject,
PDEVICE_OBJECT pSourceDeviceObject,
PDEVICE_OBJECT pTargetDeviceObject
);
BOOL
Is_Exist_File(
PHOOK_EXTENSION pHookExt,
PFILE_OBJECT pFileObject
);
BOOL
Is_Directory_File(
ULONG Options
);
NTSTATUS
FsTPMCreateFileObject(
IN PWCHAR TargetFileName,
OUT PFILE_OBJECT* ppFileObject
);
VOID
FsTPMWriteIRP(
PFILE_OBJECT FileObject,
PDEVICE_OBJECT pDevice,
PIRP pOrgIrp,
PIO_STACK_LOCATION pOrgIoStk,
PIO_STATUS_BLOCK IoStatusBlock,
PMDL mdl
);
NTSTATUS
GetFileFullNameByQuery(
OUT PUNICODE_STRING SourceFileName,
IN PHOOK_EXTENSION pHookExt ,
IN PFILE_OBJECT FileObject
);
VOID CreateFileSizeZero(PUNICODE_STRING pUniFile,BOOL isdir);
PCHAR
FsTPMGetProcess(
PCHAR ProcessName
);
ULONG
FsTPMGetProcessNameOffset(
VOID
);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -