?? search_usb.h
字號:
// Search_USB.h: interface for the Search_USB class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SEARCH_USB_H__A231472F_D524_4AA5_B960_45FBD5594E88__INCLUDED_)
#define AFX_SEARCH_USB_H__A231472F_D524_4AA5_B960_45FBD5594E88__INCLUDED_
//需要庫文件 MSVCRTD.DLL
#include "winioctl.h"
#include "usbioctl.h"//usb100.h,usbiodef.h
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class Search_USB
{
public:
Search_USB();
virtual ~Search_USB();
public:
DWORD Search(CStringArray* pArrayUSB);
private:
bool DEBUG; // Set to true to enable DEBUG messages
SECURITY_ATTRIBUTES SA; // Needed for Win2000
// Define all stuctures using UCHAR or BOOLEAN so that the variables are not 'aligned' by the compiler
typedef struct DESCRIPTOR_REQUEST {
ULONG ConnectionIndex;
struct {
UCHAR bmRequest;
UCHAR bRequest;
UCHAR wValue[2];
UCHAR wIndex[2];
UCHAR wLength[2];
} SetupPacket;
UCHAR Data[2048];
};
typedef struct DEVICE_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bcdUSB[2];
UCHAR bDeviceClass;
UCHAR bDeviceSubClass;
UCHAR bDeviceProtocol;
UCHAR bMaxPacketSize0;
UCHAR idVendor[2];
UCHAR idProduct[2];
UCHAR bcdDevice[2];
UCHAR iManufacturer;
UCHAR iProduct;
UCHAR iSerialNumber;
UCHAR bNumConfigurations;
};
typedef struct HUB_DESCRIPTOR {
UCHAR bDescriptorLength;
UCHAR bDescriptorType;
UCHAR bNumberOfPorts;
UCHAR wHubCharacteristics[2];
UCHAR bPowerOnToPowerGood;
UCHAR bHubControlCurrent;
UCHAR bRemoveAndPowerMask[64];
};
typedef struct NODE_INFORMATION {
USB_HUB_NODE NodeType;
HUB_DESCRIPTOR HubDescriptor;
BOOLEAN HubIsBusPowered;
};
typedef struct NODE_CONNECTION_INFORMATION {
ULONG ConnectionIndex;
DEVICE_DESCRIPTOR DeviceDescriptor;
UCHAR CurrentConfigurationValue;
BOOLEAN LowSpeed;
BOOLEAN DeviceIsHub;
UCHAR DeviceAddress[2];
UCHAR NumberOfOpenPipes[4];
UCHAR ConnectionStatus[4];
USB_PIPE_INFO PipeList[32];
};
private:
USHORT Get_StringDescriptor (HANDLE HubHandle, ULONG PortIndex, USHORT LanguageID, UCHAR Index, CStringArray* pArrayUSB);
USHORT Get_DeviceDescriptor (HANDLE HubHandle, ULONG PortIndex, USHORT LanguageID, PUCHAR BufferPtr, CStringArray* pArrayUSB);
USHORT Get_ConfigurationDescriptor(HANDLE HubHandle, ULONG PortIndex, USHORT LanguageID, CStringArray* pArrayUSB);
void Get_PortData(HANDLE HubHandle, UCHAR PortCount, int HubDepth, CStringArray* pArrayUSB);
DWORD Enumerate_Host_Controller(HANDLE hHostControllerHandle, CStringArray* pArrayUSB);
};
#endif // !defined(AFX_SEARCH_USB_H__A231472F_D524_4AA5_B960_45FBD5594E88__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -