⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pnpdev.h

📁 RTL8139 网卡驱动源码 for WinCE.net CEPC
💻 H
📖 第 1 页 / 共 2 页
字号:
    virtual void                PowerOn             (void);
    virtual void                PowerOff            (void);
    static  NTSTATUS            PowerComplete       (PDEVICE_OBJECT     pDevObject,
                                                     PIRP               pIrp,
                                                     PVOID              pThis);
    static  void                WorkItemRoutine     (PDEVICE_OBJECT     pDevObject,
                                                     PVOID              pThis);

//-------------------------- Start/Stop handling -----------------------------

    virtual void                PreStopDevice       (void);
    virtual void                PreRemoveDevice     (PIRP               pIrp);

    virtual NTSTATUS            PreStartDevice      (PIRP               pIrp);
    virtual void                PostStartDevice     (PIRP               pIrp,
                                                     NTSTATUS           ntStatus);

    virtual NTSTATUS            StartDevice         (PCM_PARTIAL_RESOURCE_LIST pList);
    virtual void                StopDevice          (void);


//****************************************************************************
//                        *** Member variables ***
//****************************************************************************
protected:

            PDEVICE_OBJECT      m_pDevObject;       // Address DEVICE_OBJECT structure
                                                    // associated with THIS object
            PDEVICE_OBJECT      m_pPdo;             // Physical device object
            PDEVICE_OBJECT      m_pNextStackDevice; // Previously attached device

            UNICODE_STRING      m_usLnkName;        // Symbolic link name

            PIO_WORKITEM        m_pWorkItem;        // Work item

            LONG                m_fInUse;           // References count
            BOOLEAN             m_fRemoving;        // TRUE if remove pending
            KEVENT              m_evRemove;         // Remove device enabled event

            DEVICE_POWER_STATE  m_DeviceState;      // Device power state
            SYSTEM_POWER_STATE  m_SystemState;      // System power state

            ULONG               m_uPnpState;        // Device state
};

//------------------------- Inline implementation ----------------------------

inline BOOLEAN CPnpDevice::OnIrpCreate(PIRP pIrp, NTSTATUS & ntStatus)
{
    ntStatus = STATUS_SUCCESS;
    return FALSE;
}
inline BOOLEAN CPnpDevice::OnIrpClose(PIRP pIrp, NTSTATUS & ntStatus)
{
    ntStatus = STATUS_SUCCESS;
    return FALSE;
}
inline BOOLEAN CPnpDevice::OnIrpShutDown(PIRP pIrp, NTSTATUS & ntStatus)
{
    ntStatus = STATUS_SUCCESS;
    return FALSE;
}
inline BOOLEAN CPnpDevice::OnIrpCleanUp(PIRP pIrp, NTSTATUS & ntStatus)
{
    ntStatus = STATUS_SUCCESS;
    return FALSE;
}
inline BOOLEAN CPnpDevice::OnIrpCreateNamedPipe(PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpRead           (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpWrite          (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpQueryInfo      (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpSetInfo        (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpQueryEA        (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpSetEA          (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpFlushBuffers   (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpQueryVolInfo   (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpSetVolInfo     (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpDirCtrl        (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpFSCtrl         (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpDevCtrl        (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpIntDevCtrl     (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpLockCtrl       (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpCreateMailSlot (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpQuerySec       (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpSetSec         (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpSysControl     (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpDevChange      (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpQueryQuota     (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }
inline BOOLEAN CPnpDevice::OnIrpSetQuota       (PIRP pIrp, NTSTATUS & ntStatus) { return FALSE; }

inline NTSTATUS CPnpDevice::OnQueryRemoveDevice     (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnCancelRemoveDevice    (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryStopDevice       (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnCancelStopDevice      (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryDeviceRelations  (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryInterface        (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryCapabilities     (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryResources        (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryResourceReq      (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryDeviceText       (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnFilterResReq          (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnReadConfig            (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnWriteConfig           (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnEject                 (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnSetLock               (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryID               (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryBusInfo          (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnDeviceUsageNotify     (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnSurpriseRemoval       (PIRP pIrp){ return DefPnPHandler(pIrp); }
inline NTSTATUS CPnpDevice::OnQueryLegacyBusInfo    (PIRP pIrp){ return DefPnPHandler(pIrp); }

inline NTSTATUS CPnpDevice::PowerComplete(PDEVICE_OBJECT pDevObject,
                                          PIRP           pIrp,
                                          PVOID          pThis)
{
    return ((CPnpDevice *)pThis)->OnPowerComplete(pIrp);
}
inline void CPnpDevice::WorkItemRoutine(PDEVICE_OBJECT pDevObject, PVOID pThis)
{
    ((CPnpDevice *)pThis)->OnWorkItem();
}
inline NTSTATUS CPnpDevice::OnQueryPower(PIRP             pIrp,
                                         POWER_STATE_TYPE pwType,
                                         POWER_STATE      pwState)
{
    return STATUS_SUCCESS;
}
inline void CPnpDevice::PowerOn(void) {}
inline void CPnpDevice::PowerOff(void){}

inline void CPnpDevice::PreStopDevice(void)        {}
inline void CPnpDevice::PreRemoveDevice(PIRP pIrp) {}

inline NTSTATUS CPnpDevice::PreStartDevice(PIRP pIrp) { return STATUS_SUCCESS; }
inline void CPnpDevice::PostStartDevice(PIRP pIrp, NTSTATUS ntStatus) {}

inline NTSTATUS CPnpDevice::StartDevice(PCM_PARTIAL_RESOURCE_LIST pList) { return STATUS_SUCCESS; }
inline void CPnpDevice::StopDevice(void) {}

#endif                                      // #ifndef _PNPDEV_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -