📄 pgpwipedeletent.c
字号:
//----------------------------------------------------------------------
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 + -