📄 luojincdriv01device.h
字号:
// LuojincDriv01Device.h
//
// Generated by DriverWizard version DriverStudio 3.1.0 (Build 1722)
// Requires Compuware's DriverWorks classes
//
#ifndef __LuojincDriv01Device_h__
#define __LuojincDriv01Device_h__
#include "Plx9656Head.h"
class LuojincDriv01Device : public KPnpDevice
{
// Constructors
public:
SAFE_DESTRUCTORS;
LuojincDriv01Device(PDEVICE_OBJECT Pdo, ULONG Unit);
~LuojincDriv01Device();
// Member Functions
public:
DEVMEMBER_DISPATCHERS
DEVMEMBER_CANCELIRP(LuojincDriv01Device, CancelQueuedIrp)
// The ISR (interrupt service routine)
MEMBER_ISR(LuojincDriv01Device, Isr_Irq);
// The DPC (deferred procedure call) for the ISR
MEMBER_DPC(LuojincDriv01Device, DpcFor_Irq);
virtual NTSTATUS OnStartDevice(KIrp I);
virtual NTSTATUS OnStopDevice(KIrp I);
virtual NTSTATUS OnRemoveDevice(KIrp I);
VOID Invalidate(void);
virtual NTSTATUS DefaultPnp(KIrp I);
virtual NTSTATUS DefaultPower(KIrp I);
virtual NTSTATUS OnDevicePowerUp(KIrp I);
virtual NTSTATUS OnDeviceSleep(KIrp I);
void SerialRead(KIrp I);
void SerialWrite(KIrp I);
VOID ReadMemConfigRegFunc(KIrp I);
VOID ReadIoConfigRegFunc(KIrp I);
VOID WriteMemConfigRegFunc(KIrp I);
VOID WriteIoConfigRegFunc(KIrp I);
VOID ReadLocalSpace0Func(KIrp I);
VOID ReadLocalSpace1Func(KIrp I);
VOID WriteLocalSpace0Func(KIrp I);
VOID WriteLocalSpace1Func(KIrp I);
VOID GetDriverInfoFunc(KIrp I);
VOID SetDriverInfoFunc(KIrp I);
VOID StartDma(void);
inline void SetSgDesc(
PPLX9656_DESCRIPTOR pDesc,
ULONG PciLowPart,
ULONG PciHighPart,
ULONG LocalAddr,
ULONG Length,
bool bValid,
bool bEnd,
ULONG DescPtr);
void SetFirstSgDma(PPLX9656_DESCRIPTOR pDescriptorVa);
void EnableDMA0Interrupt(bool yorn);
void ClearDMA0Interrupt(void);
void SetSgDmaMode(void);
#ifdef _COMMENT_ONLY
// The following member functions are actually defined by the
// a DEVMEMBER_xxx or MEMBER_xxx macro (such as DEVMEMBER_DISPATCHERS).
// The macro __COMMENT_ONLY never gets defined. These comment-only
// definitions simply allow easy navigation to the functions within
// the Developer Studio using the class browser.
BOOLEAN Isr_Irq(void); // COMMENT_ONLY
VOID DpcFor_Irq(PVOID Arg1, PVOID Arg2); // COMMENT_ONLY
VOID CancelQueuedIrp(KIrp I); // COMMENT_ONLY
virtual NTSTATUS CleanUp(KIrp I); // COMMENT_ONLY
virtual NTSTATUS Create(KIrp I); // COMMENT_ONLY
virtual NTSTATUS Close(KIrp I); // COMMENT_ONLY
virtual NTSTATUS DeviceControl(KIrp I); // COMMENT_ONLY
virtual NTSTATUS SystemControl(KIrp I); // COMMENT_ONLY
virtual NTSTATUS Read(KIrp I); // COMMENT_ONLY
virtual VOID StartIo(KIrp I); // COMMENT_ONLY
virtual NTSTATUS Write(KIrp I); // COMMENT_ONLY
#endif
// Member Data
protected:
// Unit number for this device (0-9)
ULONG m_Unit;
KPnpLowerDevice m_Lower;
// The following members correspond to hardware resources in the
// device.
KMemoryRange m_MemoryRange0;
KMemoryRange m_MemoryRange2;
KMemoryRange m_MemoryRange3;
KIoRange m_IoPortRange1;
// KDmaAdapter m_Dma;
KInterrupt m_Irq;
KDeferredCall m_DpcFor_Irq;
public:
//--------------Paet One -----------------//
PDEVICE_OBJECT m_pDeviceObject ;
PDMA_ADAPTER m_pDmaAdapter;
ULONG m_MapRegisterCount;
PUCHAR m_pCommBufferVa;
PPHYSICAL_ADDRESS m_pCommBufferPa;
//--------------Part Two -----------------//
PMDL m_pMdl;
//PUCHAR m_pMdlVa;
PUCHAR m_pTransferVa;
PVOID m_pMapRegisterBase;
ULONG m_nBytesRequested;
ULONG m_nBytesRemaining;
ULONG m_nBytesTransfered;
ULONG m_nTransferSize;
//ULONG m_nMapRegsNeed;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -