WDK Mini Filter Example
|
#include "pch.h"
Go to the source code of this file.
Functions | |
NTSTATUS | _Function_class_ (DRIVER_INITIALIZE) |
VOID | CdoDeleteControlDeviceObject (VOID) |
NTSTATUS | CdoMajorFunction (_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp) |
NTSTATUS | CdoHandlePrivateOpen (_In_ PIRP Irp) |
NTSTATUS | CdoHandlePrivateCleanup (_In_ PIRP Irp) |
NTSTATUS | CdoHandlePrivateClose (_In_ PIRP Irp) |
NTSTATUS | CdoHandlePrivateFsControl (_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG IoControlCode, _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength, _Out_ PIO_STATUS_BLOCK IoStatus, _In_opt_ PIRP Irp) |
BOOLEAN | CdoFastIoCheckIfPossible (_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) |
BOOLEAN | CdoFastIoRead (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ ULONG Length, _In_ BOOLEAN Wait, _In_ ULONG LockKey, _Out_writes_bytes_(Length) PVOID Buffer, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject) |
BOOLEAN | CdoFastIoWrite (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ ULONG Length, _In_ BOOLEAN Wait, _In_ ULONG LockKey, _In_reads_bytes_(Length) PVOID Buffer, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject) |
_Success_ (IoStatus->Status==0) BOOLEAN CdoFastIoQueryBasicInfo(_In_ PFILE_OBJECT FileObject | |
FLT_ASSERT (IS_MY_CONTROL_DEVICE_OBJECT(DeviceObject)) | |
UNREFERENCED_PARAMETER (FileObject) | |
UNREFERENCED_PARAMETER (Wait) | |
UNREFERENCED_PARAMETER (Buffer) | |
UNREFERENCED_PARAMETER (DeviceObject) | |
DebugTrace (DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS|DEBUG_TRACE_ERROR,("[Cdo]: CdoFastIoQueryBasicInfo -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\, FileObject, DeviceObject)) | |
DebugTrace (DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS|DEBUG_TRACE_ERROR,("[Cdo]: CdoFastIoQueryStandardInfo -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\, FileObject, DeviceObject)) | |
BOOLEAN | CdoFastIoLock (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ PLARGE_INTEGER Length, _In_ PEPROCESS ProcessId, _In_ ULONG Key, _In_ BOOLEAN FailImmediately, _In_ BOOLEAN ExclusiveLock, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject) |
BOOLEAN | CdoFastIoUnlockSingle (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ PLARGE_INTEGER Length, _In_ PEPROCESS ProcessId, _In_ ULONG Key, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject) |
BOOLEAN | CdoFastIoUnlockAll (_In_ PFILE_OBJECT FileObject, _In_ PEPROCESS ProcessId, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject) |
BOOLEAN | CdoFastIoUnlockAllByKey (_In_ PFILE_OBJECT FileObject, _In_ PVOID ProcessId, _In_ ULONG Key, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject) |
BOOLEAN | CdoFastIoDeviceControl (_In_ PFILE_OBJECT FileObject, _In_ BOOLEAN Wait, _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength, _In_ ULONG IoControlCode, _Out_ PIO_STATUS_BLOCK IoStatus, _In_ PDEVICE_OBJECT DeviceObject) |
DebugTrace (DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS|DEBUG_TRACE_ERROR,("[Cdo]: CdoFastIoQueryNetworkOpenInfo -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\, FileObject, DeviceObject)) | |
UNREFERENCED_PARAMETER (FileOffset) | |
UNREFERENCED_PARAMETER (Length) | |
UNREFERENCED_PARAMETER (LockKey) | |
UNREFERENCED_PARAMETER (MdlChain) | |
DebugTrace (DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS|DEBUG_TRACE_ERROR,("[Cdo]: CdoFastIoMdlRead -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\, FileObject, DeviceObject)) | |
BOOLEAN | CdoFastIoMdlReadComplete (_In_ PFILE_OBJECT FileObject, _In_ PMDL MdlChain, _In_ PDEVICE_OBJECT DeviceObject) |
DebugTrace (DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS|DEBUG_TRACE_ERROR,("[Cdo]: CdoFastIoPrepareMdlWrite -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\, FileObject, DeviceObject)) | |
BOOLEAN | CdoFastIoMdlWriteComplete (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ PMDL MdlChain, _In_ PDEVICE_OBJECT DeviceObject) |
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG | _Out_writes_bytes_ (Length) |
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG | _In_reads_bytes_ (Length) |
BOOLEAN | CdoFastIoMdlReadCompleteCompressed (_In_ PFILE_OBJECT FileObject, _In_ PMDL MdlChain, _In_ PDEVICE_OBJECT DeviceObject) |
BOOLEAN | CdoFastIoMdlWriteCompleteCompressed (_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ PMDL MdlChain, _In_ PDEVICE_OBJECT DeviceObject) |
_Success_ (Irp->IoStatus.Status==0) BOOLEAN CdoFastIoQueryOpen(_In_ PIRP Irp | |
UNREFERENCED_PARAMETER (NetworkInformation) | |
DebugTrace (DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS|DEBUG_TRACE_ERROR,("[Cdo]: CdoFastIoQueryOpen -> Unsupported FastIO call ( Irp = %p, DeviceObject = %p )\, Irp, DeviceObject)) | |
Variables | |
FAST_IO_DISPATCH | CdoFastIoDispatch |
DRIVER_DISPATCH | CdoMajorFunction |
_In_ BOOLEAN | Wait |
_In_ BOOLEAN _Out_ PFILE_BASIC_INFORMATION | Buffer |
_In_ BOOLEAN _Out_ PFILE_BASIC_INFORMATION _Out_ PIO_STATUS_BLOCK | IoStatus |
_In_ BOOLEAN _Out_ PFILE_BASIC_INFORMATION _Out_ PIO_STATUS_BLOCK _In_ PDEVICE_OBJECT | DeviceObject |
IoStatus | Status = STATUS_INVALID_DEVICE_REQUEST |
IoStatus | Information = 0 |
return | TRUE |
_In_ PLARGE_INTEGER | FileOffset |
_In_ PLARGE_INTEGER _In_ ULONG | Length |
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG | LockKey |
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * | MdlChain |
_Out_ PFILE_NETWORK_OPEN_INFORMATION | NetworkInformation |
Function Documentation
◆ _Function_class_()
NTSTATUS _Function_class_ | ( | DRIVER_INITIALIZE | ) |
Definition at line 104 of file CdoOperations.c.
◆ _In_reads_bytes_()
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_reads_bytes_ | ( | Length | ) |
Definition at line 1975 of file CdoOperations.c.
◆ _Out_writes_bytes_()
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_writes_bytes_ | ( | Length | ) |
Definition at line 1888 of file CdoOperations.c.
◆ _Success_() [1/2]
_Success_ | ( | IoStatus-> | Status = = 0 | ) |
◆ _Success_() [2/2]
_Success_ | ( | Irp->IoStatus. | Status = = 0 | ) |
◆ CdoDeleteControlDeviceObject()
VOID CdoDeleteControlDeviceObject | ( | VOID | ) |
Definition at line 178 of file CdoOperations.c.
◆ CdoFastIoCheckIfPossible()
BOOLEAN CdoFastIoCheckIfPossible | ( | _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 | ||
) |
Definition at line 808 of file CdoOperations.c.
◆ CdoFastIoDeviceControl()
BOOLEAN CdoFastIoDeviceControl | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ BOOLEAN | Wait, | ||
_In_reads_bytes_opt_(InputBufferLength) PVOID | InputBuffer, | ||
_In_ ULONG | InputBufferLength, | ||
_Out_writes_bytes_opt_(OutputBufferLength) PVOID | OutputBuffer, | ||
_In_ ULONG | OutputBufferLength, | ||
_In_ ULONG | IoControlCode, | ||
_Out_ PIO_STATUS_BLOCK | IoStatus, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 1445 of file CdoOperations.c.
◆ CdoFastIoLock()
BOOLEAN CdoFastIoLock | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PLARGE_INTEGER | FileOffset, | ||
_In_ PLARGE_INTEGER | Length, | ||
_In_ PEPROCESS | ProcessId, | ||
_In_ ULONG | Key, | ||
_In_ BOOLEAN | FailImmediately, | ||
_In_ BOOLEAN | ExclusiveLock, | ||
_Out_ PIO_STATUS_BLOCK | IoStatus, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 1171 of file CdoOperations.c.
◆ CdoFastIoMdlReadComplete()
BOOLEAN CdoFastIoMdlReadComplete | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PMDL | MdlChain, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 1675 of file CdoOperations.c.
◆ CdoFastIoMdlReadCompleteCompressed()
BOOLEAN CdoFastIoMdlReadCompleteCompressed | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PMDL | MdlChain, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 2057 of file CdoOperations.c.
◆ CdoFastIoMdlWriteComplete()
BOOLEAN CdoFastIoMdlWriteComplete | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PLARGE_INTEGER | FileOffset, | ||
_In_ PMDL | MdlChain, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 1805 of file CdoOperations.c.
◆ CdoFastIoMdlWriteCompleteCompressed()
BOOLEAN CdoFastIoMdlWriteCompleteCompressed | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PLARGE_INTEGER | FileOffset, | ||
_In_ PMDL | MdlChain, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 2112 of file CdoOperations.c.
◆ CdoFastIoRead()
BOOLEAN CdoFastIoRead | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PLARGE_INTEGER | FileOffset, | ||
_In_ ULONG | Length, | ||
_In_ BOOLEAN | Wait, | ||
_In_ ULONG | LockKey, | ||
_Out_writes_bytes_(Length) PVOID | Buffer, | ||
_Out_ PIO_STATUS_BLOCK | IoStatus, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 884 of file CdoOperations.c.
◆ CdoFastIoUnlockAll()
BOOLEAN CdoFastIoUnlockAll | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PEPROCESS | ProcessId, | ||
_Out_ PIO_STATUS_BLOCK | IoStatus, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 1324 of file CdoOperations.c.
◆ CdoFastIoUnlockAllByKey()
BOOLEAN CdoFastIoUnlockAllByKey | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PVOID | ProcessId, | ||
_In_ ULONG | Key, | ||
_Out_ PIO_STATUS_BLOCK | IoStatus, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 1382 of file CdoOperations.c.
◆ CdoFastIoUnlockSingle()
BOOLEAN CdoFastIoUnlockSingle | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PLARGE_INTEGER | FileOffset, | ||
_In_ PLARGE_INTEGER | Length, | ||
_In_ PEPROCESS | ProcessId, | ||
_In_ ULONG | Key, | ||
_Out_ PIO_STATUS_BLOCK | IoStatus, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 1252 of file CdoOperations.c.
◆ CdoFastIoWrite()
BOOLEAN CdoFastIoWrite | ( | _In_ PFILE_OBJECT | FileObject, |
_In_ PLARGE_INTEGER | FileOffset, | ||
_In_ ULONG | Length, | ||
_In_ BOOLEAN | Wait, | ||
_In_ ULONG | LockKey, | ||
_In_reads_bytes_(Length) PVOID | Buffer, | ||
_Out_ PIO_STATUS_BLOCK | IoStatus, | ||
_In_ PDEVICE_OBJECT | DeviceObject | ||
) |
Definition at line 960 of file CdoOperations.c.
◆ CdoHandlePrivateCleanup()
NTSTATUS CdoHandlePrivateCleanup | ( | _In_ PIRP | Irp | ) |
Definition at line 509 of file CdoOperations.c.
◆ CdoHandlePrivateClose()
NTSTATUS CdoHandlePrivateClose | ( | _In_ PIRP | Irp | ) |
Definition at line 584 of file CdoOperations.c.
◆ CdoHandlePrivateFsControl()
NTSTATUS CdoHandlePrivateFsControl | ( | _In_ PDEVICE_OBJECT | DeviceObject, |
_In_ ULONG | IoControlCode, | ||
_In_reads_bytes_opt_(InputBufferLength) PVOID | InputBuffer, | ||
_In_ ULONG | InputBufferLength, | ||
_Out_writes_bytes_opt_(OutputBufferLength) PVOID | OutputBuffer, | ||
_In_ ULONG | OutputBufferLength, | ||
_Out_ PIO_STATUS_BLOCK | IoStatus, | ||
_In_opt_ PIRP | Irp | ||
) |
Definition at line 661 of file CdoOperations.c.
◆ CdoHandlePrivateOpen()
NTSTATUS CdoHandlePrivateOpen | ( | _In_ PIRP | Irp | ) |
Definition at line 404 of file CdoOperations.c.
◆ CdoMajorFunction()
NTSTATUS CdoMajorFunction | ( | _In_ PDEVICE_OBJECT | DeviceObject, |
_Inout_ PIRP | Irp | ||
) |
Definition at line 216 of file CdoOperations.c.
◆ DebugTrace() [1/6]
DebugTrace | ( | DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS| | DEBUG_TRACE_ERROR, |
("[Cdo]: CdoFastIoQueryBasicInfo -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\ FileObject, DeviceObject) | |||
) |
◆ DebugTrace() [2/6]
DebugTrace | ( | DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS| | DEBUG_TRACE_ERROR, |
("[Cdo]: CdoFastIoQueryStandardInfo -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\ FileObject, DeviceObject) | |||
) |
◆ DebugTrace() [3/6]
DebugTrace | ( | DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS| | DEBUG_TRACE_ERROR, |
("[Cdo]: CdoFastIoQueryNetworkOpenInfo -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\ FileObject, DeviceObject) | |||
) |
◆ DebugTrace() [4/6]
DebugTrace | ( | DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS| | DEBUG_TRACE_ERROR, |
("[Cdo]: CdoFastIoMdlRead -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\ FileObject, DeviceObject) | |||
) |
◆ DebugTrace() [5/6]
DebugTrace | ( | DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS| | DEBUG_TRACE_ERROR, |
("[Cdo]: CdoFastIoPrepareMdlWrite -> Unsupported FastIO call ( FileObject = %p, DeviceObject = %p )\ FileObject, DeviceObject) | |||
) |
◆ DebugTrace() [6/6]
DebugTrace | ( | DEBUG_TRACE_CDO_ALL_OPERATIONS|DEBUG_TRACE_CDO_FASTIO_OPERATIONS| | DEBUG_TRACE_ERROR, |
("[Cdo]: CdoFastIoQueryOpen -> Unsupported FastIO call ( Irp = %p, DeviceObject = %p )\ Irp, DeviceObject) | |||
) |
◆ FLT_ASSERT()
FLT_ASSERT | ( | IS_MY_CONTROL_DEVICE_OBJECT(DeviceObject) | ) |
◆ UNREFERENCED_PARAMETER() [1/9]
UNREFERENCED_PARAMETER | ( | FileObject | ) |
◆ UNREFERENCED_PARAMETER() [2/9]
UNREFERENCED_PARAMETER | ( | Wait | ) |
◆ UNREFERENCED_PARAMETER() [3/9]
UNREFERENCED_PARAMETER | ( | Buffer | ) |
◆ UNREFERENCED_PARAMETER() [4/9]
UNREFERENCED_PARAMETER | ( | DeviceObject | ) |
◆ UNREFERENCED_PARAMETER() [5/9]
UNREFERENCED_PARAMETER | ( | FileOffset | ) |
◆ UNREFERENCED_PARAMETER() [6/9]
UNREFERENCED_PARAMETER | ( | Length | ) |
◆ UNREFERENCED_PARAMETER() [7/9]
UNREFERENCED_PARAMETER | ( | LockKey | ) |
◆ UNREFERENCED_PARAMETER() [8/9]
UNREFERENCED_PARAMETER | ( | MdlChain | ) |
◆ UNREFERENCED_PARAMETER() [9/9]
UNREFERENCED_PARAMETER | ( | NetworkInformation | ) |
Variable Documentation
◆ Buffer
_In_ BOOLEAN _Out_ PFILE_NETWORK_OPEN_INFORMATION Buffer |
Definition at line 1041 of file CdoOperations.c.
◆ CdoFastIoDispatch
FAST_IO_DISPATCH CdoFastIoDispatch |
Definition at line 69 of file CdoOperations.c.
◆ CdoMajorFunction
DRIVER_DISPATCH CdoMajorFunction |
Definition at line 214 of file CdoOperations.c.
◆ DeviceObject
_Out_ PFILE_NETWORK_OPEN_INFORMATION _In_ PDEVICE_OBJECT DeviceObject |
Definition at line 1078 of file CdoOperations.c.
◆ FileOffset
_In_ PLARGE_INTEGER FileOffset |
Definition at line 1608 of file CdoOperations.c.
◆ Information
Irp IoStatus Information = 0 |
Definition at line 1097 of file CdoOperations.c.
◆ IoStatus
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL _Out_ PIO_STATUS_BLOCK IoStatus |
Definition at line 1041 of file CdoOperations.c.
◆ Length
_In_ PLARGE_INTEGER _In_ ULONG Length |
Definition at line 1608 of file CdoOperations.c.
◆ LockKey
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG LockKey |
Definition at line 1608 of file CdoOperations.c.
◆ MdlChain
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain |
Definition at line 1608 of file CdoOperations.c.
◆ NetworkInformation
_Out_ PFILE_NETWORK_OPEN_INFORMATION NetworkInformation |
Definition at line 2176 of file CdoOperations.c.
◆ Status
return Status = STATUS_INVALID_DEVICE_REQUEST |
Definition at line 1096 of file CdoOperations.c.
◆ TRUE
return TRUE |
Definition at line 1099 of file CdoOperations.c.
◆ Wait
_In_ BOOLEAN Wait |
Definition at line 1041 of file CdoOperations.c.
Services Overview
Architect, implement and test file system filter drivers for a wide range of functionality. We can offer several levels of assistance to meet your specific.
Contact Us
You are welcome to contact us for salse or partnership.
Sales: sales@easefilter.com
Support: support@easefilter.com
Info: info@easefilter.com