BazisLib::DDK::StorageDevice Class Reference

#include <storage.h>

Inherits BazisLib::DDK::IODevice.

Inherited by BazisLib::DDK::BasicStorageVolume [protected].

Collaboration diagram for BazisLib::DDK::StorageDevice:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 StorageDevice (LPCWSTR pwszDevicePrefix=L"BazisStor", bool bDeleteThisAfterRemoveRequest=false, DEVICE_TYPE DeviceType=FILE_DEVICE_DISK, ULONG DeviceCharacteristics=FILE_DEVICE_SECURE_OPEN, bool bExclusive=FALSE, ULONG AdditionalDeviceFlags=DO_POWER_PAGABLE)
 ~StorageDevice ()
bool Valid ()
NTSTATUS AddDevice (Driver *pDriver, PDEVICE_OBJECT PhysicalDeviceObject, const GUID *pInterfaceGuid, const wchar_t *pwszLinkPath=NULL)

Protected Member Functions

PCUNICODE_STRING GetFullDeviceName ()
virtual NTSTATUS OnDeviceControl (ULONG ControlCode, bool IsInternal, void *pInOutBuffer, ULONG InputLength, ULONG OutputLength, PULONG pBytesDone) override
virtual NTSTATUS OnQueryDeviceName (PMOUNTDEV_NAME pName, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnQueryUniqueID (PMOUNTDEV_UNIQUE_ID pID, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnVolumeOnline ()
virtual NTSTATUS OnVolumeOffline ()
virtual NTSTATUS OnCheckVerify (ULONG OriginalControlCode, ULONG *pChangeCount)
virtual NTSTATUS OnGetPartitionInfo (PPARTITION_INFORMATION pInfo, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnGetPartitionInfoEx (PPARTITION_INFORMATION_EX pInfo, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnSetPartitionInfo (PPARTITION_INFORMATION pInfo, ULONG InputLength)
virtual NTSTATUS OnSetPartitionInfoEx (PPARTITION_INFORMATION_EX pInfo, ULONG InputLength)
virtual NTSTATUS OnDiskIsWritable ()
virtual NTSTATUS OnGetDriveGeometry (PDISK_GEOMETRY pGeo)
virtual NTSTATUS OnGetDriveGeometryEx (PDISK_GEOMETRY_EX pGeo)
virtual NTSTATUS OnGetLengthInfo (PGET_LENGTH_INFORMATION pLength)
virtual NTSTATUS OnGetDriveLayout (PDRIVE_LAYOUT_INFORMATION pLayout, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnGetDriveLayoutEx (PDRIVE_LAYOUT_INFORMATION_EX pLayout, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnGetHotplugInfo (PSTORAGE_HOTPLUG_INFO pHotplugInfo)
virtual NTSTATUS OnMediaRemoval (bool bLock)
virtual NTSTATUS OnGetMediaTypes (PDISK_GEOMETRY pGeometryArray, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnDiskVerify (PVERIFY_INFORMATION pVerifyInfo)
virtual NTSTATUS OnGetMediaTypesEx (PGET_MEDIA_TYPES pMediaTypes, PDEVICE_MEDIA_INFO pFirstMediaInfo, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnGetDeviceNumber (PSTORAGE_DEVICE_NUMBER pNumber)
virtual NTSTATUS OnQueryProperty (PSTORAGE_PROPERTY_QUERY pQueryProperty, PSTORAGE_DESCRIPTOR_HEADER pOutput, ULONG BufferLength, PULONG pBytesDone)
virtual NTSTATUS OnGetStableGuid (LPGUID lpGuid)
virtual NTSTATUS OnScsiMiniportControl (SRB_IO_CONTROL *pControlBlock)

Private Attributes

string m_FullDeviceName


Constructor & Destructor Documentation

BazisLib::DDK::StorageDevice::StorageDevice ( LPCWSTR  pwszDevicePrefix = L"BazisStor",
bool  bDeleteThisAfterRemoveRequest = false,
DEVICE_TYPE  DeviceType = FILE_DEVICE_DISK,
ULONG  DeviceCharacteristics = FILE_DEVICE_SECURE_OPEN,
bool  bExclusive = FALSE,
ULONG  AdditionalDeviceFlags = DO_POWER_PAGABLE 
)

BazisLib::DDK::StorageDevice::~StorageDevice (  ) 


Member Function Documentation

NTSTATUS BazisLib::DDK::StorageDevice::AddDevice ( Driver pDriver,
PDEVICE_OBJECT  PhysicalDeviceObject,
const GUID pInterfaceGuid,
const wchar_t *  pwszLinkPath = NULL 
)

Reimplemented from BazisLib::DDK::PNPDevice.

PCUNICODE_STRING BazisLib::DDK::StorageDevice::GetFullDeviceName (  )  [inline, protected]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnCheckVerify ( ULONG  OriginalControlCode,
ULONG *  pChangeCount 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnDeviceControl ( 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::IODevice.

Reimplemented in BazisLib::DDK::BasicCDVolume, and BazisLib::DDK::UniversalVolume.

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnDiskIsWritable (  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnDiskVerify ( PVERIFY_INFORMATION  pVerifyInfo  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetDeviceNumber ( PSTORAGE_DEVICE_NUMBER  pNumber  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetDriveGeometry ( PDISK_GEOMETRY  pGeo  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetDriveGeometryEx ( PDISK_GEOMETRY_EX  pGeo  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetDriveLayout ( PDRIVE_LAYOUT_INFORMATION  pLayout,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetDriveLayoutEx ( PDRIVE_LAYOUT_INFORMATION_EX  pLayout,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetHotplugInfo ( PSTORAGE_HOTPLUG_INFO  pHotplugInfo  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetLengthInfo ( PGET_LENGTH_INFORMATION  pLength  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetMediaTypes ( PDISK_GEOMETRY  pGeometryArray,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetMediaTypesEx ( PGET_MEDIA_TYPES  pMediaTypes,
PDEVICE_MEDIA_INFO  pFirstMediaInfo,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetPartitionInfo ( PPARTITION_INFORMATION  pInfo,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetPartitionInfoEx ( PPARTITION_INFORMATION_EX  pInfo,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnGetStableGuid ( LPGUID  lpGuid  )  [protected, virtual]

Reimplemented in BazisLib::DDK::UniversalVolume.

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnMediaRemoval ( bool  bLock  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnQueryDeviceName ( PMOUNTDEV_NAME  pName,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnQueryProperty ( PSTORAGE_PROPERTY_QUERY  pQueryProperty,
PSTORAGE_DESCRIPTOR_HEADER  pOutput,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnQueryUniqueID ( PMOUNTDEV_UNIQUE_ID  pID,
ULONG  BufferLength,
PULONG  pBytesDone 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnScsiMiniportControl ( SRB_IO_CONTROL *  pControlBlock  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnSetPartitionInfo ( PPARTITION_INFORMATION  pInfo,
ULONG  InputLength 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnSetPartitionInfoEx ( PPARTITION_INFORMATION_EX  pInfo,
ULONG  InputLength 
) [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnVolumeOffline (  )  [protected, virtual]

virtual NTSTATUS BazisLib::DDK::StorageDevice::OnVolumeOnline (  )  [protected, virtual]

bool BazisLib::DDK::StorageDevice::Valid (  )  [inline]

Reimplemented from BazisLib::DDK::PNPDevice.

Reimplemented in BazisLib::DDK::BasicStorageVolume.


Member Data Documentation


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