mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
#ifndef _HWDEV_H
|
|
#define _HWDEV_H
|
|
|
|
#include "namellst.h"
|
|
|
|
#include "cmmn.h"
|
|
#include "misc.h"
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// This will enumerate all the Device that we're interested in and create
|
|
// additionnal objects to do specialized work
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CHWDeviceInst //: public CDeviceElem
|
|
{
|
|
public:
|
|
// CHWDeviceInst
|
|
HRESULT Init(DEVINST devinst);
|
|
HRESULT InitInterfaceGUID(const GUID* pguidInterface);
|
|
|
|
HRESULT GetPnpID(LPWSTR pszPnpID, DWORD cchPnpID);
|
|
HRESULT GetDeviceInstance(DEVINST* pdevinst);
|
|
HRESULT GetPnpInstID(LPWSTR pszPnpInstID, DWORD cchPnpInstID);
|
|
HRESULT GetInterfaceGUID(GUID* pguidInterface);
|
|
|
|
HRESULT IsRemovableDevice(BOOL* pfRemovable);
|
|
HRESULT ShouldAutoplayOnSpecialInterface(const GUID* pguidInterface,
|
|
BOOL* pfShouldAutoplay);
|
|
|
|
public:
|
|
CHWDeviceInst();
|
|
~CHWDeviceInst();
|
|
|
|
private:
|
|
HRESULT _GetPnpIDRecurs(DEVINST devinst, LPWSTR pszPnpID,
|
|
DWORD cchPnpID);
|
|
HRESULT _InitFriendlyName();
|
|
HRESULT _InitPnpInfo();
|
|
HRESULT _InitPnpIDAndPnpInstID();
|
|
|
|
private:
|
|
DEVINST _devinst;
|
|
// For now MAX_SURPRISEREMOVALFN
|
|
WCHAR _szFriendlyName[MAX_SURPRISEREMOVALFN];
|
|
WCHAR _szPnpID[MAX_PNPID];
|
|
WCHAR _szPnpInstID[MAX_PNPINSTID];
|
|
|
|
GUID _guidInterface;
|
|
|
|
BOOL _fFriendlyNameInited;
|
|
};
|
|
|
|
#endif //_HWDEV_H
|