BazisLib::DDK::StorageFilter Class Reference

#include <storfilter.h>

Inherits BazisLib::DDK::IODeviceFilter.

Collaboration diagram for BazisLib::DDK::StorageFilter:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 StorageFilter (LPCWSTR pwszBaseDeviceName, bool bDeleteThisAfterRemoveRequest=false, LPCWSTR pwszFilterDeviceName=NULL, DEVICE_TYPE FilterDeviceType=FILE_DEVICE_UNKNOWN, ULONG DeviceCharacteristics=FILE_DEVICE_SECURE_OPEN, bool bExclusive=FALSE, ULONG AdditionalDeviceFlags=DO_POWER_PAGABLE)
 ~StorageFilter ()

Protected Member Functions

virtual NTSTATUS FilterDeviceControl (IncomingIrp *pIrp, ULONG ControlCode, bool IsInternal, void *pInOutBuffer, ULONG InputLength, ULONG OutputLength, PULONG pBytesDone) override
virtual NTSTATUS FilterQueryDeviceName (IncomingIrp *pIrp, PMOUNTDEV_NAME pName, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS FilterQueryUniqueID (IncomingIrp *pIrp, PMOUNTDEV_UNIQUE_ID pID, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS FilterVolumeOnline (IncomingIrp *pIrp)
virtual NTSTATUS FilterVolumeOffline (IncomingIrp *pIrp)
virtual NTSTATUS FilterCheckVerify (IncomingIrp *pIrp, ULONG OriginalControlCode)
virtual NTSTATUS FilterGetPartitionInfo (IncomingIrp *pIrp, PPARTITION_INFORMATION pInfo, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS FilterGetPartitionInfoEx (IncomingIrp *pIrp, PPARTITION_INFORMATION_EX pInfo, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS FilterSetPartitionInfo (IncomingIrp *pIrp, PPARTITION_INFORMATION pInfo, ULONG InputLength)
virtual NTSTATUS FilterSetPartitionInfoEx (IncomingIrp *pIrp, PPARTITION_INFORMATION_EX pInfo, ULONG InputLength)
virtual NTSTATUS FilterDiskIsWritable (IncomingIrp *pIrp)
virtual NTSTATUS FilterGetDriveGeometry (IncomingIrp *pIrp, PDISK_GEOMETRY pGeo)
virtual NTSTATUS FilterGetDriveGeometryEx (IncomingIrp *pIrp, PDISK_GEOMETRY_EX pGeo)
virtual NTSTATUS FilterGetLengthInfo (IncomingIrp *pIrp, PGET_LENGTH_INFORMATION pLength)
virtual NTSTATUS FilterGetDriveLayout (IncomingIrp *pIrp, PDRIVE_LAYOUT_INFORMATION pLayout, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS FilterGetDriveLayoutEx (IncomingIrp *pIrp, PDRIVE_LAYOUT_INFORMATION_EX pLayout, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS FilterGetHotplugInfo (IncomingIrp *pIrp, PSTORAGE_HOTPLUG_INFO pHotplugInfo)
virtual NTSTATUS FilterMediaRemoval (IncomingIrp *pIrp, BOOLEAN *pbLock)
virtual NTSTATUS FilterGetMediaTypes (IncomingIrp *pIrp, PDISK_GEOMETRY pGeometryArray, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS FilterDiskVerify (IncomingIrp *pIrp, PVERIFY_INFORMATION pVerifyInfo)
virtual NTSTATUS FilterGetMediaTypesEx (IncomingIrp *pIrp, PGET_MEDIA_TYPES pMediaTypes, PDEVICE_MEDIA_INFO pFirstMediaInfo, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS FilterGetDeviceNumber (IncomingIrp *pIrp, PSTORAGE_DEVICE_NUMBER pNumber)
virtual NTSTATUS FilterQueryProperty (IncomingIrp *pIrp, PSTORAGE_PROPERTY_QUERY pQueryProperty, PSTORAGE_DESCRIPTOR_HEADER pOutput, ULONG BufferLength, PULONG pBytesDone)


Constructor & Destructor Documentation

BazisLib::DDK::StorageFilter::StorageFilter ( LPCWSTR  pwszBaseDeviceName,
bool  bDeleteThisAfterRemoveRequest = false,
LPCWSTR  pwszFilterDeviceName = NULL,
DEVICE_TYPE  FilterDeviceType = FILE_DEVICE_UNKNOWN,
ULONG  DeviceCharacteristics = FILE_DEVICE_SECURE_OPEN,
bool  bExclusive = FALSE,
ULONG  AdditionalDeviceFlags = DO_POWER_PAGABLE 
)

Initializes a storage filter class instance

Parameters:
bDeleteThisAfterRemoveRequest Specifies whether the device object (class instance) should be deleted automatically after handling IRP_MN_REMOVE_DEVICE.

BazisLib::DDK::StorageFilter::~StorageFilter (  ) 


Member Function Documentation

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterCheckVerify ( IncomingIrp pIrp,
ULONG  OriginalControlCode 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterDeviceControl ( IncomingIrp pIrp,
ULONG  ControlCode,
bool  IsInternal,
void *  pInOutBuffer,
ULONG  InputLength,
ULONG  OutputLength,
PULONG  pBytesDone 
) [override, protected, virtual]

This method is called when the driver receives an IRP_MJ_DEVICE_CONTROL or IRP_MJ_INTERNAL_DEVICE_CONTROL packet with Transfer Type bits set to METHOD_BUFFERED

Reimplemented from BazisLib::DDK::IODeviceFilter.

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterDiskIsWritable ( IncomingIrp pIrp  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterDiskVerify ( IncomingIrp pIrp,
PVERIFY_INFORMATION  pVerifyInfo 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetDeviceNumber ( IncomingIrp pIrp,
PSTORAGE_DEVICE_NUMBER  pNumber 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetDriveGeometry ( IncomingIrp pIrp,
PDISK_GEOMETRY  pGeo 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetDriveGeometryEx ( IncomingIrp pIrp,
PDISK_GEOMETRY_EX  pGeo 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetDriveLayout ( IncomingIrp pIrp,
PDRIVE_LAYOUT_INFORMATION  pLayout,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetDriveLayoutEx ( IncomingIrp pIrp,
PDRIVE_LAYOUT_INFORMATION_EX  pLayout,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetHotplugInfo ( IncomingIrp pIrp,
PSTORAGE_HOTPLUG_INFO  pHotplugInfo 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetLengthInfo ( IncomingIrp pIrp,
PGET_LENGTH_INFORMATION  pLength 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetMediaTypes ( IncomingIrp pIrp,
PDISK_GEOMETRY  pGeometryArray,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetMediaTypesEx ( IncomingIrp pIrp,
PGET_MEDIA_TYPES  pMediaTypes,
PDEVICE_MEDIA_INFO  pFirstMediaInfo,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetPartitionInfo ( IncomingIrp pIrp,
PPARTITION_INFORMATION  pInfo,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterGetPartitionInfoEx ( IncomingIrp pIrp,
PPARTITION_INFORMATION_EX  pInfo,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterMediaRemoval ( IncomingIrp pIrp,
BOOLEAN *  pbLock 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterQueryDeviceName ( IncomingIrp pIrp,
PMOUNTDEV_NAME  pName,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterQueryProperty ( IncomingIrp pIrp,
PSTORAGE_PROPERTY_QUERY  pQueryProperty,
PSTORAGE_DESCRIPTOR_HEADER  pOutput,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterQueryUniqueID ( IncomingIrp pIrp,
PMOUNTDEV_UNIQUE_ID  pID,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterSetPartitionInfo ( IncomingIrp pIrp,
PPARTITION_INFORMATION  pInfo,
ULONG  InputLength 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterSetPartitionInfoEx ( IncomingIrp pIrp,
PPARTITION_INFORMATION_EX  pInfo,
ULONG  InputLength 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterVolumeOffline ( IncomingIrp pIrp  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageFilter::FilterVolumeOnline ( IncomingIrp pIrp  )  [protected, virtual]


The documentation for this class was generated from the following file:
SourceForge.net Logo