Source code of Windows XP (NT5)
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.
|
|
//depot/Lab01_N/Shell/osshell/cpls/usb/itemfind.h#3 - edit change 8022 (text)
/*******************************************************************************
* * (C) COPYRIGHT MICROSOFT CORP., 1993-1995 * TITLE: ITEMFIND.H * VERSION: 1.0 * AUTHOR: jsenior * DATE: 10/28/1998 * ******************************************************************************** * * CHANGE LOG: * * DATE REV DESCRIPTION * ---------- ------- ---------------------------------------------------------- * 10/28/1998 jsenior Original implementation. * *******************************************************************************/ #ifndef _USBITEMACTIONFIND_H
#define _USBITEMACTIONFIND_H
#include "UsbItem.h"
#include "vec.h"
#define USB_NUM_FRAMES 32
typedef _Vec<UsbItem *> UsbItemList;
//
// Searching for devices
//
class UsbItemActionFindIsoDevices : public UsbItem::UsbItemAction { public: UsbItemActionFindIsoDevices() { ZeroMemory(interruptBW, sizeof(UINT)*USB_NUM_FRAMES); } BOOL operator()(UsbItem *Item);
UsbItemList& GetIsoDevices() {return isoDevices;} void AddInterruptBW(UsbItem *); UINT InterruptBW();
private: UINT interruptBW[USB_NUM_FRAMES]; UsbItemList isoDevices; };
class UsbItemActionFindPower : public UsbItem::UsbItemAction { public: UsbItemActionFindPower(UsbItem *HubItem) : hubItem(HubItem) {} BOOL operator()(UsbItem *Item);
UsbItemList& GetPowerDevices() {return powerDevices;} UsbItemList& GetOtherDevices() {return otherDevices;}
protected: UsbItemList powerDevices, otherDevices; UsbItem *hubItem; };
//
// Searching for hubs
//
#define DistanceFromControllerForHub 6
#define DistanceFromControllerForDevice 7
class UsbItemActionFindHubsWithFreePorts : public UsbItem::UsbItemAction { public: UsbItemActionFindHubsWithFreePorts(UsbItem *HubItem) : hubItem(HubItem) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetHubs() {return hubs;}
protected: UsbItemList hubs; UsbItem *hubItem; }; class UsbItemActionFindSelfPoweredHubsWithFreePorts : public UsbItem::UsbItemAction { public: UsbItemActionFindSelfPoweredHubsWithFreePorts(UsbItem *HubItem) : hubItem(HubItem) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetHubs() {return hubs;}
protected: UsbItemList hubs; UsbItem *hubItem; }; class UsbItemActionFindSelfPoweredHubsWithFreePortsForHub : public UsbItem::UsbItemAction { public: UsbItemActionFindSelfPoweredHubsWithFreePortsForHub(UsbItem *HubItem) : hubItem(HubItem) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetHubs() {return hubs;}
protected: UsbItemList hubs; UsbItem *hubItem; }; class UsbItemActionFindBusPoweredHubsOnSelfPoweredHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindBusPoweredHubsOnSelfPoweredHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetDevices() {return devices;}
protected: UsbItemList devices; UsbItem *item; };
//
// Searching for ports
//
class UsbItemActionFindFreePortsOnSelfPoweredHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindFreePortsOnSelfPoweredHubs(UsbItem *HubItem) : hubItem(HubItem) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetHubs() {return hubs;}
protected: UsbItemList hubs; UsbItem *hubItem; }; class UsbItemActionFindOvercurrentHubPort : public UsbItem::UsbItemAction { public: UsbItemActionFindOvercurrentHubPort(String &HubName, ULONG Port) : device(NULL) {hubName = HubName; portIndex = Port;} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItem *GetDevice() {return device;}
protected: static String hubName; static ULONG portIndex; UsbItem *device; };
//
// Searching for devices
//
class UsbItemActionFindLowPoweredDevicesOnSelfPoweredHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindLowPoweredDevicesOnSelfPoweredHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetDevices() {return devices;}
protected: UsbItemList devices; UsbItem *item; };
class UsbItemActionFindDevicesOnHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindDevicesOnHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetDevices() {return devices;}
protected: UsbItemList devices; UsbItem *item; };
class UsbItemActionFindUnknownPoweredDevicesOnSelfPoweredHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindUnknownPoweredDevicesOnSelfPoweredHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetDevices() {return devices;}
protected: UsbItemList devices; UsbItem *item; };
class UsbItemActionFindHighPoweredDevicesOnSelfPoweredHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindHighPoweredDevicesOnSelfPoweredHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetDevices() {return devices;}
protected: UsbItemList devices; UsbItem *item; };
class UsbItemActionFindOvercurrentDevice : public UsbItem::UsbItemAction { public: UsbItemActionFindOvercurrentDevice(DEVINST DevInst) : device(NULL) {devInst = DevInst;} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItem *GetDevice() {return device;}
protected: static DEVINST devInst; UsbItem *device; };
class UsbItemActionFindUsb2xDevicesOnUsb2xHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindUsb2xDevicesOnUsb2xHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item); UsbItemList& GetDevices() {return devices;} protected: UsbItemList devices; UsbItem *item; };
class UsbItemActionFindUnknownDevicesOnUsb2xHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindUnknownDevicesOnUsb2xHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item); UsbItemList& GetDevices() {return devices;} protected: UsbItemList devices; UsbItem *item; };
class UsbItemActionFindUsb1xDevicesOnUsb2xHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindUsb1xDevicesOnUsb2xHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item); UsbItemList& GetDevices() {return devices;} protected: UsbItemList devices; UsbItem *item; };
class UsbItemActionFindFreePortsOnUsb2xHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindFreePortsOnUsb2xHubs(UsbItem *HubItem) : hubItem(HubItem) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetHubs() {return hubs;}
protected: UsbItemList hubs; UsbItem *hubItem; };
class UsbItemActionFindUsb2xHubsWithFreePorts : public UsbItem::UsbItemAction { public: UsbItemActionFindUsb2xHubsWithFreePorts(UsbItem *HubItem) : hubItem(HubItem) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetHubs() {return hubs;}
protected: UsbItemList hubs; UsbItem *hubItem; };
class UsbItemActionFindUsb2xHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindUsb2xHubs(UsbItem *HubItem) : hubItem(HubItem) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetHubs() {return hubs;}
protected: UsbItemList hubs; UsbItem *hubItem; };
class UsbItemActionFindDevicesOnSelfPoweredHubs : public UsbItem::UsbItemAction { public: UsbItemActionFindDevicesOnSelfPoweredHubs(UsbItem *Item) : item(Item) {} BOOL operator()(UsbItem *Item); static BOOL IsValid(UsbItem *Item); static BOOL IsExpanded(UsbItem *Item);
UsbItemList& GetDevices() {return devices;}
protected: UsbItemList devices; UsbItem *item; };
inline BOOL TrueAlways(UsbItem *item) { return TRUE; }
#endif //
|