📄 vpdo.h
字号:
// vpdo.h
//
// Generated by DriverWizard version DriverStudio 2.7.0 (Build 554)
// Requires Compuware's DriverWorks classes
//
#ifndef __VPDO_H__
#define __VPDO_H__
// forward declaration
class VBusDevice;
class VBus;
#define VENDORNAME L"Numega_"
#define MODEL_READER L"Reader_"
#define MODEL_WRITER L"Writer_"
#define VBUS_HARDWARE_READER_IDS L"VBUS\\NumegaReader\0"
#define VBUS_HARDWARE_WRITER_IDS L"VBUS\\NumegaWriter\0"
////////////////////////////////////////////////////////////////////////////
//
// VPdo class provides extends KPhysicalDevice class and serves as a base
// class to VReader and VWriter classes
//
class VPdo : public KPhysicalDevice
{
// Constructors
public:
virtual SAFE_DESTRUCTORS;
VPdo(VBusDevice* pParent, VBus* pBus, ULONG Unit);
~VPdo();
// Overrides for KPnpDevice class
virtual NTSTATUS OnQueryId(KIrp I);
virtual NTSTATUS OnQueryBusInformation(KIrp I);
virtual NTSTATUS OnDeviceUsageNotification(KIrp I);
virtual NTSTATUS OnQueryResources(KIrp I);
virtual NTSTATUS OnQueryResourceRequirements(KIrp I);
virtual NTSTATUS OnQueryCapabilities(KIrp I);
virtual NTSTATUS OnQueryRemoveDevice(KIrp I);
void Removed() { m_bExist = false; }
// Member Functions
protected:
NTSTATUS QueryDeviceText(const WCHAR* Model, KIrp I);
protected:
static VOID _stdcall AddRef(PVOID Context) { ++((VPdo*)Context)->m_RefCount; }
static VOID _stdcall Release(PVOID Context) { --((VPdo*)Context)->m_RefCount; }
// Member Data
protected:
VBusDevice* m_Parent;
PWCHAR m_HardwareIDs;
KInterlockedCounter m_RefCount; // used to track interface count
public:
ULONG m_Unit; // device id
};
////////////////////////////////////////////////////////////////////////////
//
// VReader class provides READ interface
//
class VReader : public VPdo
{
// Constructors
public:
virtual SAFE_DESTRUCTORS;
VReader(VBusDevice* pParent, VBus* pBus, ULONG Unit);
~VReader() {}
virtual NTSTATUS OnQueryDeviceText(KIrp I) { return QueryDeviceText(MODEL_READER, I); }
virtual NTSTATUS OnQueryInterface(KIrp I);
protected:
static BOOLEAN _stdcall Read(ULONG Offset, PVOID Buffer, ULONG Size, PULONG pRead);
};
////////////////////////////////////////////////////////////////////////////
//
// VWriter class provides WRITE interface
//
class VWriter : public VPdo
{
// Constructors
public:
virtual SAFE_DESTRUCTORS;
VWriter(VBusDevice* pParent, VBus* pBus, ULONG Unit);
~VWriter() {}
virtual NTSTATUS OnQueryDeviceText(KIrp I) { return QueryDeviceText(MODEL_WRITER, I); }
virtual NTSTATUS OnQueryInterface(KIrp I);
protected:
static BOOLEAN _stdcall Write(ULONG Offset, PVOID Buffer, ULONG Size, PULONG pRead);
};
#endif // __VPDO_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -