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

📄 pgpwipedeletent.c

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 C
📖 第 1 页 / 共 5 页
字号:
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoLock(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER FileOffset,
		IN PLARGE_INTEGER Length,
		PEPROCESS ProcessId,
		ULONG Key,
		BOOLEAN FailImmediately,
		BOOLEAN ExclusiveLock,
		OUT PIO_STATUS_BLOCK IoStatus,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->FastIoDispatch->FastIoLock )
	{
        retval = pdeve->pdevoNext->DriverObject->FastIoDispatch->FastIoLock(
            FileObject, FileOffset, Length, ProcessId, Key, FailImmediately,
            ExclusiveLock, IoStatus, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoUnlockSingle
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoUnlockSingle(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER FileOffset,
		IN PLARGE_INTEGER Length,
		PEPROCESS ProcessId,
		ULONG Key,
		OUT PIO_STATUS_BLOCK IoStatus,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->FastIoDispatch->FastIoUnlockSingle )
	{
        retval = pdeve->pdevoNext->
					DriverObject->FastIoDispatch->FastIoUnlockSingle(
							FileObject, FileOffset, Length, ProcessId, Key,
							IoStatus, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoUnlockAll
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoUnlockAll(
		IN PFILE_OBJECT FileObject,
		PEPROCESS ProcessId,
		OUT PIO_STATUS_BLOCK IoStatus,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if ( pdeve->pdevoNext->DriverObject->FastIoDispatch->FastIoUnlockAll )
	{
        retval = pdeve->pdevoNext->
					DriverObject->FastIoDispatch->FastIoUnlockAll(
							FileObject, ProcessId,
							IoStatus, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoUnlockAllByKey
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoUnlockAllByKey(
		IN PFILE_OBJECT FileObject,
		PEPROCESS ProcessId,
		ULONG Key,
		OUT PIO_STATUS_BLOCK IoStatus,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->
					FastIoDispatch->FastIoUnlockAllByKey )
	{
        retval = pdeve->pdevoNext->DriverObject->
					FastIoDispatch->FastIoUnlockAllByKey(
							FileObject, ProcessId, Key,
							IoStatus, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoQueryNetworkOpenInfo
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoQueryNetworkOpenInfo(
		IN PFILE_OBJECT FileObject,
		IN BOOLEAN Wait,
		OUT struct _FILE_NETWORK_OPEN_INFORMATION *Buffer,
		OUT PIO_STATUS_BLOCK IoStatus,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->
					FastIoDispatch->FastIoQueryNetworkOpenInfo )
	{
        retval = pdeve->pdevoNext->DriverObject->
					FastIoDispatch->FastIoQueryNetworkOpenInfo(
							FileObject, Wait, Buffer,
							IoStatus, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoAcquireForModWrite
//
//----------------------------------------------------------------------
NTSTATUS
PGPWDNTFastIoAcquireForModWrite(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER EndingOffset,
		OUT struct _ERESOURCE **ResourceToRelease,
		IN PDEVICE_OBJECT DeviceObject )
{
    NTSTATUS            retval = STATUS_NOT_SUPPORTED;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->FastIoDispatch->AcquireForModWrite )
	{
        retval = pdeve->pdevoNext->DriverObject->
					FastIoDispatch->AcquireForModWrite(
							FileObject, EndingOffset,
							ResourceToRelease, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoMdlRead
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoMdlRead(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER FileOffset,
		IN ULONG Length,
		IN ULONG LockKey,
		OUT PMDL *MdlChain,
		OUT PIO_STATUS_BLOCK IoStatus,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->FastIoDispatch->MdlRead )
	{
        retval = pdeve->pdevoNext->DriverObject->FastIoDispatch->MdlRead(
            FileObject, FileOffset, Length, LockKey, MdlChain,
            IoStatus, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoMdlReadComplete
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoMdlReadComplete(
		IN PFILE_OBJECT FileObject,
		IN PMDL MdlChain,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->FastIoDispatch->MdlReadComplete )
	{
        retval = (BOOLEAN) pdeve->pdevoNext->DriverObject->
					FastIoDispatch->MdlReadComplete(
							FileObject, MdlChain, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoPrepareMdlWrite
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoPrepareMdlWrite(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER FileOffset,
		IN ULONG Length,
		IN ULONG LockKey,
		OUT PMDL *MdlChain,
		OUT PIO_STATUS_BLOCK IoStatus,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    IoStatus->Status      = STATUS_NOT_SUPPORTED;
    IoStatus->Information = 0;

    if( pdeve->pdevoNext->DriverObject->FastIoDispatch->PrepareMdlWrite )
	{
        retval = pdeve->pdevoNext->DriverObject->
					FastIoDispatch->PrepareMdlWrite(
							FileObject, FileOffset, Length, LockKey,
							MdlChain, IoStatus, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoMdlWriteComplete
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoMdlWriteComplete(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER FileOffset,
		IN PMDL MdlChain,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->FastIoDispatch->MdlWriteComplete )
	{
        retval = pdeve->pdevoNext->DriverObject->
					FastIoDispatch->MdlWriteComplete(
							FileObject, FileOffset,
							MdlChain, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoReadCompressed
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoReadCompressed(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER FileOffset,
		IN ULONG Length,
		IN ULONG LockKey,
		OUT PVOID Buffer,
		OUT PMDL *MdlChain,
		OUT PIO_STATUS_BLOCK IoStatus,
		OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
		IN ULONG CompressedDataInfoLength,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->FastIoDispatch->FastIoReadCompressed )
	{
        retval = pdeve->pdevoNext->DriverObject->
					FastIoDispatch->FastIoReadCompressed(
							FileObject, FileOffset, Length, LockKey, Buffer,
							MdlChain, IoStatus, CompressedDataInfo,
							CompressedDataInfoLength, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoWriteCompressed
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoWriteCompressed(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER FileOffset,
		IN ULONG Length,
		IN ULONG LockKey,
		OUT PVOID Buffer,
		OUT PMDL *MdlChain,
		OUT PIO_STATUS_BLOCK IoStatus,
		OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
		IN ULONG CompressedDataInfoLength,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->DriverObject->
					FastIoDispatch->FastIoWriteCompressed )
	{
        retval = pdeve->pdevoNext->DriverObject->
					FastIoDispatch->FastIoWriteCompressed(
							FileObject, FileOffset, Length, LockKey, Buffer,
							MdlChain, IoStatus, CompressedDataInfo,
							CompressedDataInfoLength, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoMdlReadCompleteCompressed
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoMdlReadCompleteCompressed(
		IN PFILE_OBJECT FileObject,
		IN PMDL MdlChain,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

	// if not intended for us, force OS to create IRP
	if (pdeve->ulDeviceType != WIPE_DELETE_DEV)
		return FALSE;

    if( pdeve->pdevoNext->
					DriverObject->FastIoDispatch->MdlReadCompleteCompressed )
	{
        retval = pdeve->pdevoNext->DriverObject->
					FastIoDispatch->MdlReadCompleteCompressed(
							FileObject, MdlChain, pdeve->pdevoNext );
    }
    return retval;
}


//----------------------------------------------------------------------
//
// PGPWDNTFastIoMdlWriteCompleteCompressed
//
//----------------------------------------------------------------------
BOOLEAN
PGPWDNTFastIoMdlWriteCompleteCompressed(
		IN PFILE_OBJECT FileObject,
		IN PLARGE_INTEGER FileOffset,
		IN PMDL MdlChain,
		IN PDEVICE_OBJECT DeviceObject )
{
    BOOLEAN             retval = FALSE;
    PDEVEXTENSION		pdeve;

    pdeve = DeviceObject->DeviceExtension;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -