⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 specialiofunction.h

📁 一个过滤层文件系统驱动的完整代码,实现了文件的加密,操作截获等
💻 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 + -