WDK Mini Filter Example
CdoOperations.c File Reference
#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()

◆ 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
Initial value:
{
PAGED_CODE()

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.

Social Network


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