#include <storfilter.h>
Inherits BazisLib::DDK::IODeviceFilter.

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) |
| 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
| bDeleteThisAfterRemoveRequest | Specifies whether the device object (class instance) should be deleted automatically after handling IRP_MN_REMOVE_DEVICE. |
| BazisLib::DDK::StorageFilter::~StorageFilter | ( | ) |
| 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] |