#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] |