?? dbt.h
字號:
#define LOCKP_USER_MASK 0x03 // Mask for user lock flags
#define LOCKP_LOCK_FOR_FORMAT 0x04 // Level 0 lock for format
/*
* Values for vlb_flags
*/
#define LOCKF_LOGICAL_LOCK 0x00 // Bit 0 clear - logical lock
#define LOCKF_PHYSICAL_LOCK 0x01 // Bit 0 set - physical lock
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_NODISKSPACE
* lParam = drive number of drive that is out of disk space (1-based)
*
* Message issued by IFS manager when it detects that a drive is run out of
* free space.
*/
#define DBT_NO_DISK_SPACE 0x0047
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_LOW_DISK_SPACE
* lParam = drive number of drive that is low on disk space (1-based)
*
* Message issued by VFAT when it detects that a drive it has mounted
* has the remaning free space below a threshold specified by the
* registry or by a disk space management application.
* The broadcast is issued by VFAT ONLY when space is either allocated
* or freed by VFAT.
*/
#define DBT_LOW_DISK_SPACE 0x0048
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_PRESHELLLOGGEDON
* lParam = 0
*
* The shell is about to log on. CONFIGMG better make sure the net is
* not being rebalance.
*/
#define DBT_PRESHELLLOGGEDON 0x0049
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_WINDRIVE_LOW_DISK_SPACE
* lParam = drive number of drive that is low on disk space (1-based)
*
* Message issued by VFAT when it detects that the Windows drive
* has the remaning free space below a threshold specified by the
* registry or by a disk space management application.
* The broadcast is issued by VFAT ONLY when space is either allocated
* or freed by VFAT.
*/
#define DBT_WINDRIVE_LOW_DISK_SPACE 0x0050
#define DBT_CONFIGMGPRIVATE 0x7FFF
#define DBT_IDIOTS_CHECK 0x7F7F
/*
* The following messages are for WM_DEVICECHANGE. The immediate list
* is for the wParam. ALL THESE MESSAGES PASS A POINTER TO A STRUCT
* STARTING WITH A DWORD SIZE AND HAVING NO POINTER IN THE STRUCT.
*
*/
#define DBT_DEVICEARRIVAL 0x8000 // system detected a new device
#define DBT_DEVICEQUERYREMOVE 0x8001 // wants to remove, may fail
#define DBT_DEVICEQUERYREMOVEFAILED 0x8002 // removal aborted
#define DBT_DEVICEREMOVEPENDING 0x8003 // about to remove, still avail.
#define DBT_DEVICEREMOVECOMPLETE 0x8004 // device is gone
#define DBT_DEVICETYPESPECIFIC 0x8005 // type specific event
#if(WINVER >= 0x040A)
#define DBT_CUSTOMEVENT 0x8006 // user-defined event
#endif /* WINVER >= 0x040A */
#define DBT_DEVTYP_OEM 0x00000000 // oem-defined device type
#define DBT_DEVTYP_DEVNODE 0x00000001 // devnode number
#define DBT_DEVTYP_VOLUME 0x00000002 // logical volume
#define DBT_DEVTYP_PORT 0x00000003 // serial, parallel
#define DBT_DEVTYP_NET 0x00000004 // network resource
#if(WINVER >= 0x040A)
#define DBT_DEVTYP_DEVICEINTERFACE 0x00000005 // device interface class
#define DBT_DEVTYP_HANDLE 0x00000006 // file system handle
#endif /* WINVER >= 0x040A */
struct _DEV_BROADCAST_HEADER { /* */
DWORD dbcd_size;
DWORD dbcd_devicetype;
DWORD dbcd_reserved;
};
struct _DEV_BROADCAST_OEM { /* */
DWORD dbco_size;
DWORD dbco_devicetype;
DWORD dbco_reserved;
DWORD dbco_identifier;
DWORD dbco_suppfunc;
};
typedef struct _DEV_BROADCAST_OEM DEV_BROADCAST_OEM;
typedef DEV_BROADCAST_OEM DBTFAR *PDEV_BROADCAST_OEM;
struct _DEV_BROADCAST_DEVNODE { /* */
DWORD dbcd_size;
DWORD dbcd_devicetype;
DWORD dbcd_reserved;
DWORD dbcd_devnode;
};
typedef struct _DEV_BROADCAST_DEVNODE DEV_BROADCAST_DEVNODE;
typedef DEV_BROADCAST_DEVNODE DBTFAR *PDEV_BROADCAST_DEVNODE;
struct _DEV_BROADCAST_VOLUME { /* */
DWORD dbcv_size;
DWORD dbcv_devicetype;
DWORD dbcv_reserved;
DWORD dbcv_unitmask;
WORD dbcv_flags;
};
typedef struct _DEV_BROADCAST_VOLUME DEV_BROADCAST_VOLUME;
typedef DEV_BROADCAST_VOLUME DBTFAR *PDEV_BROADCAST_VOLUME;
#define DBTF_MEDIA 0x0001 // media comings and goings
#define DBTF_NET 0x0002 // network volume
typedef struct _DEV_BROADCAST_PORT_A {
DWORD dbcp_size;
DWORD dbcp_devicetype;
DWORD dbcp_reserved;
char dbcp_name[1];
} DEV_BROADCAST_PORT_A, *PDEV_BROADCAST_PORT_A;
typedef struct _DEV_BROADCAST_PORT_W {
DWORD dbcp_size;
DWORD dbcp_devicetype;
DWORD dbcp_reserved;
wchar_t dbcp_name[1];
} DEV_BROADCAST_PORT_W, DBTFAR *PDEV_BROADCAST_PORT_W;
#ifdef UNICODE
typedef DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT;
typedef PDEV_BROADCAST_PORT_W PDEV_BROADCAST_PORT;
#else
typedef DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT;
typedef PDEV_BROADCAST_PORT_A PDEV_BROADCAST_PORT;
#endif
struct _DEV_BROADCAST_NET { /* */
DWORD dbcn_size;
DWORD dbcn_devicetype;
DWORD dbcn_reserved;
DWORD dbcn_resource;
DWORD dbcn_flags;
};
typedef struct _DEV_BROADCAST_NET DEV_BROADCAST_NET;
typedef DEV_BROADCAST_NET DBTFAR *PDEV_BROADCAST_NET;
#if(WINVER >= 0x040A)
typedef struct _DEV_BROADCAST_DEVICEINTERFACEA {
DWORD dbcc_size;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
struct _GUID dbcc_classguid;
char dbcc_name[1];
} DEV_BROADCAST_DEVICEINTERFACEA, *PDEV_BROADCAST_DEVICEINTERFACEA;
typedef struct _DEV_BROADCAST_DEVICEINTERFACEW {
DWORD dbcc_size;
DWORD dbcc_devicetype;
DWORD dbcc_reserved;
struct _GUID dbcc_classguid;
wchar_t dbcc_name[1];
} DEV_BROADCAST_DEVICEINTERFACEW, *PDEV_BROADCAST_DEVICEINTERFACEW;
#ifdef UNICODE
typedef DEV_BROADCAST_DEVICEINTERFACEW DEV_BROADCAST_DEVICEINTERFACE;
typedef PDEV_BROADCAST_DEVICEINTERFACEW PDEV_BROADCAST_DEVICEINTERFACE;
#else
typedef DEV_BROADCAST_DEVICEINTERFACEA DEV_BROADCAST_DEVICEINTERFACE;
typedef PDEV_BROADCAST_DEVICEINTERFACEA PDEV_BROADCAST_DEVICEINTERFACE;
#endif
typedef struct _DEV_BROADCAST_HANDLE {
DWORD dbch_size;
DWORD dbch_devicetype;
DWORD dbch_reserved;
DWORD dbch_handle; // file handle used in call to RegisterDeviceNotification
DWORD dbch_hdevnotify; // HDEVNOTIFY returned from RegisterDeviceNotification
//
// The following 3 fields are only valid if wParam is DBT_CUSTOMEVENT.
//
struct _GUID dbch_eventguid;
ULONG dbch_nameoffset; // offset (bytes) of variable-length string buffer (-1 if none)
BYTE dbch_data[1]; // variable-sized buffer, potentially containing binary and/or text data
} DEV_BROADCAST_HANDLE, *PDEV_BROADCAST_HANDLE;
#endif /* WINVER >= 0x040A */
#define DBTF_RESOURCE 0x00000001 // network resource
#define DBTF_XPORT 0x00000002 // new transport coming or going
#define DBTF_SLOWNET 0x00000004 // new incoming transport is slow
// (dbcn_resource undefined for now)
#define DBT_VPOWERDAPI 0x8100 // VPOWERD API for Win95
/*
* User-defined message types all use wParam = 0xFFFF with the
* lParam a pointer to the structure below.
*
* dbud_dbh - DEV_BROADCAST_HEADER must be filled in as usual.
*
* dbud_szName contains a case-sensitive ASCIIZ name which names the
* message. The message name consists of the vendor name, a backslash,
* then arbitrary user-defined ASCIIZ text. For example:
*
* "WidgetWare\QueryScannerShutdown"
* "WidgetWare\Video Q39S\AdapterReady"
*
* After the ASCIIZ name, arbitrary information may be provided.
* Make sure that dbud_dbh.dbch_size is big enough to encompass
* all the data. And remember that nothing in the structure may
* contain pointers.
*/
#define DBT_USERDEFINED 0xFFFF
struct _DEV_BROADCAST_USERDEFINED { /* */
struct _DEV_BROADCAST_HDR dbud_dbh;
char dbud_szName[1]; /* ASCIIZ name */
/* BYTE dbud_rgbUserDefined[];*/ /* User-defined contents */
};
#endif // _DBT_H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -