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

📄 dbc100.h

📁 书中的主要程序文件。在打开例题的.dsw文件后,请读者在 tools菜单下的 Options 的 Directories 标签中选择 Executable files
💻 H
字号:
/*++

    Structures defined in the Device Class Definition
    for Device Bay Controllers

--*/

#ifndef   __DBC100_H__
#define   __DBC100_H__


#include <PSHPACK1.H>


/* 
    Feature selectors
*/

#define DEVICE_STATUS_CHANGE_ENABLE         0
#define ENABLE_VID_POWER                    1
#define LOCK_CTL                            2
#define REMOVAL_EVENT_WAKE_ENABLE           3
#define REMOVAL_REQUEST_ENABLE              4
#define REQUEST_DEVICE_INSERTED_STATE       5
#define REQUEST_DEVICE_ENABLED_STATE        6
#define REQUEST_REMOVAL_REQUESTED_STATE     7
#define REQUEST_REMOVAL_ALLOWED_STATE       8
#define C_DEVICE_STATUS_CHANGE              9
#define C_REMOVE_REQUEST                    10
#define ENABLE_VOP_POWER                    11

/*
    Class Descriptors
*/

#define DBC_SUSBSYSTEM_DESCRIPTOR_TYPE       0x40
#define DBC_BAY_DESCRIPTOR_TYPE              0x41


/* bay states (BayStateRequested and CurrentBayState) */

#define BAY_STATE_EMPTY                         0x00    // 000
#define BAY_STATE_DEVICE_INSERTED               0x01    // 001
#define BAY_STATE_DEVICE_ENABLED                0x02    // 010
#define BAY_STATE_DEVICE_REMOVAL_REQUESTED      0x03    // 011
#define BAY_STATE_DEVICE_REMOVAL_ALLOWED        0x04    // 100
//#define BAY_STATE_                            0x05    // 101
//#define BAY_STATE_                            0x06    // 110
//#define BAY_STATE_                            0x07    // 111


typedef union _BAY_STATUS {
    USHORT       us;
    struct {
        unsigned    VidEnabled:1;                    /* 0 */
        unsigned    RemovalWakeupEnabled:1;          /* 1 */
        unsigned    DeviceStatusChangeEnabled:1;     /* 2 */
        unsigned    RemovalRequestEnabled:1;         /* 3 */
        
        unsigned    LastBayStateRequested:3;         /* 4..6 */ 
        
        unsigned    InterlockEngaged:1;              /* 7 */   
        unsigned    DeviceUsbIsPresent:1;            /* 8 */
        unsigned    Device1394IsPresent:1;           /* 9 */

        unsigned    DeviceStatusChange:1;            /* 10 */
        unsigned    RemovalRequestChange:1;          /* 11 */
        
        unsigned    CurrentBayState:3;               /* 12..14 */
        
        unsigned    SecurityLockEngaged:1;           /* 15 */
        unsigned    Reserved:8;                      /* 16..23 */
    };                
} BAY_STATUS, *PBAY_STATUS;

typedef union _SUBSYTEM_ATTRIBUTES {
    ULONG       ul;
    struct {
        unsigned    BayCount:4;            /* 0 ..3 */
        unsigned    HasSecurityLock:1;     /* 4 */
        unsigned    Reserved:27;           /* 5..31 */
    };                
} SUBSYTEM_ATTRIBUTES, *PSUBSYTEM_ATTRIBUTES;


typedef struct _DBC_BAY_DESCRIPTOR {
    UCHAR bLength;
    UCHAR bDescriptorType;
    UCHAR bBayNumber;
    UCHAR bHubPortNumber;
    UCHAR bPHYPortNumber;
    UCHAR bFormFactor;
} DBC_BAY_DESCRIPTOR, *PDBC_BAY_DESCRIPTOR;


typedef struct _DBC_SUBSYSTEM_DESCRIPTOR {
    UCHAR bLength;
    UCHAR bDescriptorType;
    SUBSYTEM_ATTRIBUTES bmAttributes;
    UCHAR guid1394Link[8];
    ULONG v3_3ContinuousPower;
    ULONG v3_3PeakPower;
    ULONG v5_0ContinuousPower;
    ULONG v5_0PeakPower;
    ULONG v12_0ContinuousPower;
    ULONG v12_0PeakPower;
    ULONG AggregatePower;
    ULONG ThermalDissapation;
    USHORT bcdSpecificationRelease;
    
} DBC_SUBSYSTEM_DESCRIPTOR, *PDBC_SUBSYSTEM_DESCRIPTOR;


#include <POPPACK.H>


#endif   /* __DBC100_H__ */

⌨️ 快捷键说明

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