#include <crossvol.h>
Inherits BazisLib::DDK::BasicStorageVolume.
Public Member Functions | |
UniversalVolume (IBasicDisk *pDisk, bool bOwnsInterface, char PartitionType=PARTITION_FAT32) | |
~UniversalVolume () | |
Protected Member Functions | |
virtual unsigned | GetSectorSize () override |
virtual ULONGLONG | GetTotalSize () override |
virtual char | GetPartitionType () override |
virtual NTSTATUS | Read (ULONGLONG ByteOffset, PVOID pBuffer, ULONG Length, PULONG pBytesDone) override |
virtual NTSTATUS | Write (ULONGLONG ByteOffset, PVOID pBuffer, ULONG Length, PULONG pBytesDone) override |
virtual NTSTATUS | OnGetStableGuid (LPGUID lpGuid) override |
virtual NTSTATUS | OnDeviceControl (ULONG ControlCode, bool IsInternal, void *pInOutBuffer, ULONG InputLength, ULONG OutputLength, PULONG pBytesDone) override |
virtual NTSTATUS | OnStartDevice (IN PCM_RESOURCE_LIST AllocatedResources, IN PCM_RESOURCE_LIST AllocatedResourcesTranslated) override |
Private Attributes | |
IBasicDisk * | m_pDisk |
bool | m_bDeleteDisk |
char | m_PartitionType |
BazisLib::DDK::UniversalVolume::UniversalVolume | ( | IBasicDisk * | pDisk, | |
bool | bOwnsInterface, | |||
char | PartitionType = PARTITION_FAT32 | |||
) |
BazisLib::DDK::UniversalVolume::~UniversalVolume | ( | ) |
virtual char BazisLib::DDK::UniversalVolume::GetPartitionType | ( | ) | [override, protected, virtual] |
Reimplemented from BazisLib::DDK::BasicStorageVolume.
virtual unsigned BazisLib::DDK::UniversalVolume::GetSectorSize | ( | ) | [override, protected, virtual] |
Reimplemented from BazisLib::DDK::BasicStorageVolume.
virtual ULONGLONG BazisLib::DDK::UniversalVolume::GetTotalSize | ( | ) | [override, protected, virtual] |
Implements BazisLib::DDK::BasicStorageVolume.
virtual NTSTATUS BazisLib::DDK::UniversalVolume::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::StorageDevice.
virtual NTSTATUS BazisLib::DDK::UniversalVolume::OnGetStableGuid | ( | LPGUID | lpGuid | ) | [override, protected, virtual] |
Reimplemented from BazisLib::DDK::StorageDevice.
virtual NTSTATUS BazisLib::DDK::UniversalVolume::OnStartDevice | ( | IN PCM_RESOURCE_LIST | AllocatedResources, | |
IN PCM_RESOURCE_LIST | AllocatedResourcesTranslated | |||
) | [override, protected, virtual] |
Called when IRP_MN_START_DEVICE is received. Enables the device interface and returns STATUS_SUCCESS. If this method returns an unsuccessful status, the device would not be marked as started.
Consider the following method structure when writing an override: NTSTATUS status = __super::OnStartDevice(...); if (!NT_SUCCESS(status)) return status;
<<< Perform actual initialization >>>
status = ... ; return status;
Reimplemented from BazisLib::DDK::PNPDevice.
virtual NTSTATUS BazisLib::DDK::UniversalVolume::Read | ( | ULONGLONG | ByteOffset, | |
PVOID | pBuffer, | |||
ULONG | Length, | |||
PULONG | pBytesDone | |||
) | [override, protected, virtual] |
Implements BazisLib::DDK::BasicStorageVolume.
virtual NTSTATUS BazisLib::DDK::UniversalVolume::Write | ( | ULONGLONG | ByteOffset, | |
PVOID | pBuffer, | |||
ULONG | Length, | |||
PULONG | pBytesDone | |||
) | [override, protected, virtual] |
Implements BazisLib::DDK::BasicStorageVolume.
bool BazisLib::DDK::UniversalVolume::m_bDeleteDisk [private] |
char BazisLib::DDK::UniversalVolume::m_PartitionType [private] |