WDK Mini Filter Example
|
Go to the source code of this file.
Functions | |
_Function_class_ (DRIVER_INITIALIZE) NTSTATUS CdoCreateControlDeviceObject(_Inout_ PDRIVER_OBJECT DriverObject) | |
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 | |
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) |
BOOLEAN | CdoFastIoMdlReadComplete (_In_ PFILE_OBJECT FileObject, _In_ PMDL MdlChain, _In_ PDEVICE_OBJECT 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) PVOID Buffer |
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL _Out_ PIO_STATUS_BLOCK | _Out_writes_bytes_ (CompressedDataInfoLength) struct _COMPRESSED_DATA_INFO *CompressedDataInfo |
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG | _In_reads_bytes_ (Length) PVOID Buffer |
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL _Out_ PIO_STATUS_BLOCK | _In_reads_bytes_ (CompressedDataInfoLength) struct _COMPRESSED_DATA_INFO *CompressedDataInfo |
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 | |
FORCEINLINE VOID | _Acquires_lock_ (_Global_critical_region_) CdoAcquireResourceExclusive(_Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_exclusive_lock_(*_Curr_) PERESOURCE Resource) |
FORCEINLINE VOID | _Releases_lock_ (_Global_critical_region_) _Requires_lock_held_(_Global_critical_region_) CdoReleaseResource(_Inout_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_) PERESOURCE Resource) |
Variables | |
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 |
_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 |
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL _Out_ PIO_STATUS_BLOCK _In_ ULONG | CompressedDataInfoLength |
_Out_ PFILE_NETWORK_OPEN_INFORMATION | NetworkInformation |
Function Documentation
◆ _Acquires_lock_()
FORCEINLINE VOID _Acquires_lock_ | ( | _Global_critical_region_ | ) |
◆ _Function_class_()
_Function_class_ | ( | DRIVER_INITIALIZE | ) |
Definition at line 104 of file CdoOperations.c.
◆ _In_reads_bytes_() [1/2]
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_reads_bytes_ | ( | Length | ) |
◆ _In_reads_bytes_() [2/2]
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL _Out_ PIO_STATUS_BLOCK _In_reads_bytes_ | ( | CompressedDataInfoLength | ) |
◆ _Out_writes_bytes_() [1/2]
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_writes_bytes_ | ( | Length | ) |
◆ _Out_writes_bytes_() [2/2]
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL _Out_ PIO_STATUS_BLOCK _Out_writes_bytes_ | ( | CompressedDataInfoLength | ) |
◆ _Releases_lock_()
FORCEINLINE VOID _Releases_lock_ | ( | _Global_critical_region_ | ) |
◆ _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.
Variable Documentation
◆ Buffer
◆ CdoMajorFunction
◆ CompressedDataInfoLength
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL _Out_ PIO_STATUS_BLOCK _In_ ULONG CompressedDataInfoLength |
◆ DeviceObject
_Out_ PFILE_NETWORK_OPEN_INFORMATION _In_ PDEVICE_OBJECT DeviceObject |
◆ FileOffset
◆ IoStatus
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL _Out_ PIO_STATUS_BLOCK IoStatus |
◆ Length
◆ LockKey
◆ MdlChain
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL* MdlChain |
◆ NetworkInformation
◆ Wait
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