311 lines
9.5 KiB
C
311 lines
9.5 KiB
C
/*
|
|
* dbt.h Device broadcast type definitions
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef _DBT_H
|
|
#define _DBT_H
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* BroadcastSystemMessage() flags not defined in winuser.h */
|
|
#define BSF_MSGSRV32ISOK 0x80000000L
|
|
#define BSF_MSGSRV32ISOK_BIT 31
|
|
|
|
/* Device broadcast types */
|
|
#define DBT_APPYBEGIN 0x0000
|
|
#define DBT_APPYEND 0x0001
|
|
#define DBT_DEVNODES_CHANGED 0x0007
|
|
#define DBT_QUERYCHANGECONFIG 0x0017
|
|
#define DBT_CONFIGCHANGED 0x0018
|
|
#define DBT_CONFIGCONFIGCANCELED 0x0019
|
|
#define DBT_MONITORCHANGE 0x001B
|
|
#define DBT_SHELLLOGGEDON 0x0020
|
|
#define DBT_CONFIGMGAPI32 0x0022
|
|
#define DBT_VXDINITCOMPLETE 0x0023
|
|
#define DBT_NO_DISK_SPACE 0x0047
|
|
#define DBT_LOW_DISK_SPACE 0x0048
|
|
#define DBT_CONFIGMGPRIVATE 0x7FFF
|
|
#define DBT_DEVICEARRIVAL 0x8000
|
|
#define DBT_DEVICEQUERYREMOVE 0x8001
|
|
#define DBT_DEVICEQUERYREMOVEFAILED 0x8002
|
|
#define DBT_DEVICEREMOVEPENDING 0x8003
|
|
#define DBT_DEVICEREMOVECOMPLETE 0x8004
|
|
#define DBT_DEVICETYPESPECIFIC 0x8005
|
|
#if (WINVER >= 0x040A)
|
|
#define DBT_CUSTOMEVENT 0x8006
|
|
#endif
|
|
#if (WINVER >= 0x0601)
|
|
#define DBT_DEVINSTENUMERATED 0x8007
|
|
#define DBT_DEVINSTSTARTED 0x8008
|
|
#define DBT_DEVINSTREMOVED 0x8009
|
|
#define DBT_DEVINSTPROPERTYCHANGE 0x800A
|
|
#endif
|
|
#define DBT_VOLLOCKQUERYLOCK 0x8041
|
|
#define DBT_VOLLOCKLOCKTAKEN 0x8042
|
|
#define DBT_VOLLOCKLOCKFAILED 0x8043
|
|
#define DBT_VOLLOCKQUERYUNLOCK 0x8044
|
|
#define DBT_VOLLOCKLOCKRELEASED 0x8045
|
|
#define DBT_VOLLOCKUNLOCKFAILED 0x8046
|
|
#define DBT_VPOWERDAPI 0x8100
|
|
#define DBT_USERDEFINED 0xFFFF
|
|
|
|
/* Volume lock broadcast permissions */
|
|
#define LOCKP_ALLOW_WRITES 0x01
|
|
#define LOCKP_FAIL_WRITES 0x00
|
|
#define LOCKP_FAIL_MEM_MAPPING 0x02
|
|
#define LOCKP_ALLOW_MEM_MAPPING 0x00
|
|
#define LOCKP_USER_MASK 0x03
|
|
#define LOCKP_LOCK_FOR_FORMAT 0x04
|
|
|
|
/* Volume lock broadcast lock flags */
|
|
#define LOCKF_LOGICAL_LOCK 0x00
|
|
#define LOCKF_PHYSICAL_LOCK 0x01
|
|
|
|
/* Device types */
|
|
#define DBT_DEVTYP_OEM 0x00000000L
|
|
#define DBT_DEVTYP_DEVNODE 0x00000001L
|
|
#define DBT_DEVTYP_VOLUME 0x00000002L
|
|
#define DBT_DEVTYP_PORT 0x00000003L
|
|
#define DBT_DEVTYP_NET 0x00000004L
|
|
#if (WINVER >= 0x040A)
|
|
#define DBT_DEVTYP_DEVICEINTERFACE 0x00000005L
|
|
#define DBT_DEVTYP_HANDLE 0x00000006L
|
|
#endif
|
|
#if (WINVER >= 0x0601)
|
|
#define DBT_DEVTYPE_DEVINST 0x00000007L
|
|
#endif
|
|
|
|
/* Volume device broadcast flags*/
|
|
#define DBTF_MEDIA 0x0001
|
|
#define DBTF_NET 0x0002
|
|
|
|
/* Device instance device broadcast flags */
|
|
#if (WINVER >= 0x0601)
|
|
#define NOTIFY_DEVICE_ALLDEVICES 0x00000001L
|
|
#define NOTIFY_DEVICE_ARRIVALREMOVAL 0x00000010L
|
|
#define NOTIFY_DEVICE_PROPERTYCHANGED 0x00000020L
|
|
#define NOTIFY_DEVICE_BITS \
|
|
(NOTIFY_DEVICE_ALLDEVICES | NOTIFY_DEVICE_ARRIVALREMOVAL | \
|
|
NOTIFY_DEVICE_PROPERTYCHANGED)
|
|
#endif
|
|
|
|
/* Network device broadcast flags */
|
|
#define DBTF_RESOURCE 0x00000001L
|
|
#define DBTF_XPORT 0x00000002L
|
|
#define DBTF_SLOWNET 0x00000004L
|
|
|
|
/* Device broadcast header */
|
|
typedef struct _DEV_BROADCAST_HDR {
|
|
DWORD dbch_size;
|
|
DWORD dbch_devicetype;
|
|
DWORD dbch_reserved;
|
|
} DEV_BROADCAST_HDR;
|
|
typedef DEV_BROADCAST_HDR *PDEV_BROADCAST_HDR;
|
|
|
|
/* Volume lock broadcast parameters */
|
|
typedef struct VolLockBroadcast {
|
|
struct _DEV_BROADCAST_HDR vlb_dbh;
|
|
DWORD vlb_owner;
|
|
BYTE vlb_perms;
|
|
BYTE vlb_lockType;
|
|
BYTE vlb_drive;
|
|
BYTE vlb_flags;
|
|
} VolLockBroadcast;
|
|
typedef VolLockBroadcast *pVolLockBroadcast;
|
|
|
|
/* Device broadcast header */
|
|
struct _DEV_BROADCAST_HEADER {
|
|
DWORD dbcd_size;
|
|
DWORD dbcd_devicetype;
|
|
DWORD dbcd_reserved;
|
|
};
|
|
|
|
/* OEM device broadcast */
|
|
typedef struct _DEV_BROADCAST_OEM {
|
|
DWORD dbco_size;
|
|
DWORD dbco_devicetype;
|
|
DWORD dbco_reserved;
|
|
DWORD dbco_identifier;
|
|
DWORD dbco_suppfunc;
|
|
} DEV_BROADCAST_OEM;
|
|
typedef DEV_BROADCAST_OEM *PDEV_BROADCAST_OEM;
|
|
|
|
/* Device node device broadcast */
|
|
typedef struct _DEV_BROADCAST_DEVNODE {
|
|
DWORD dbcd_size;
|
|
DWORD dbcd_devicetype;
|
|
DWORD dbcd_reserved;
|
|
DWORD dbcd_devnode;
|
|
} DEV_BROADCAST_DEVNODE;
|
|
typedef DEV_BROADCAST_DEVNODE *PDEV_BROADCAST_DEVNODE;
|
|
|
|
/* Volume device broadcast */
|
|
typedef struct _DEV_BROADCAST_VOLUME {
|
|
DWORD dbcv_size;
|
|
DWORD dbcv_devicetype;
|
|
DWORD dbcv_reserved;
|
|
DWORD dbcv_unitmask;
|
|
WORD dbcv_flags;
|
|
} DEV_BROADCAST_VOLUME;
|
|
typedef DEV_BROADCAST_VOLUME *PDEV_BROADCAST_VOLUME;
|
|
|
|
/* Port device broadcast */
|
|
typedef struct _DEV_BROADCAST_PORT_A {
|
|
DWORD dbcp_size;
|
|
DWORD dbcp_devicetype;
|
|
DWORD dbcp_reserved;
|
|
char dbcp_name[1];
|
|
} DEV_BROADCAST_PORT_A;
|
|
typedef 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;
|
|
typedef DEV_BROADCAST_PORT_W *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
|
|
|
|
/* Network device broadcast */
|
|
typedef struct _DEV_BROADCAST_NET {
|
|
DWORD dbcn_size;
|
|
DWORD dbcn_devicetype;
|
|
DWORD dbcn_reserved;
|
|
DWORD dbcn_resource;
|
|
DWORD dbcn_flags;
|
|
} DEV_BROADCAST_NET;
|
|
typedef DEV_BROADCAST_NET *PDEV_BROADCAST_NET;
|
|
|
|
/* Device interface device broadcast */
|
|
#if (WINVER >= 0x040A)
|
|
typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A {
|
|
DWORD dbcc_size;
|
|
DWORD dbcc_devicetype;
|
|
DWORD dbcc_reserved;
|
|
GUID dbcc_classguid;
|
|
char dbcc_name[1];
|
|
} DEV_BROADCAST_DEVICEINTERFACE_A;
|
|
typedef DEV_BROADCAST_DEVICEINTERFACE_A *PDEV_BROADCAST_DEVICEINTERFACE_A;
|
|
typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W {
|
|
DWORD dbcc_size;
|
|
DWORD dbcc_devicetype;
|
|
DWORD dbcc_reserved;
|
|
GUID dbcc_classguid;
|
|
wchar_t dbcc_name[1];
|
|
} DEV_BROADCAST_DEVICEINTERFACE_W;
|
|
typedef DEV_BROADCAST_DEVICEINTERFACE_W *PDEV_BROADCAST_DEVICEINTERFACE_W;
|
|
#ifdef UNICODE
|
|
typedef DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE;
|
|
typedef PDEV_BROADCAST_DEVICEINTERFACE_W PDEV_BROADCAST_DEVICEINTERFACE;
|
|
#else
|
|
typedef DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE;
|
|
typedef PDEV_BROADCAST_DEVICEINTERFACE_A PDEV_BROADCAST_DEVICEINTERFACE;
|
|
#endif
|
|
#endif
|
|
|
|
/* Handle device broadcast */
|
|
#if (WINVER >= 0x040A)
|
|
typedef struct _DEV_BROADCAST_HANDLE {
|
|
DWORD dbch_size;
|
|
DWORD dbch_devicetype;
|
|
DWORD dbch_reserved;
|
|
HANDLE dbch_handle;
|
|
HDEVNOTIFY dbch_hdevnotify;
|
|
GUID dbch_eventguid;
|
|
LONG dbch_nameoffset;
|
|
BYTE dbch_data[1];
|
|
} DEV_BROADCAST_HANDLE;
|
|
typedef DEV_BROADCAST_HANDLE *PDEV_BROADCAST_HANDLE;
|
|
#endif
|
|
|
|
/* Handle device broadcast (32-bit version) */
|
|
#if (WINVER >= 0x0501)
|
|
typedef struct _DEV_BROADCAST_HANDLE32 {
|
|
DWORD dbch_size;
|
|
DWORD dbch_devicetype;
|
|
DWORD dbch_reserved;
|
|
ULONG32 dbch_handle;
|
|
ULONG64 dbch_hdevnotify;
|
|
GUID dbch_eventguid;
|
|
LONG dbch_nameoffset;
|
|
BYTE dbch_data[1];
|
|
} DEV_BROADCAST_HANDLE32;
|
|
typedef DEV_BROADCAST_HANDLE32 *PDEV_BROADCAST_HANDLE32;
|
|
#endif
|
|
|
|
/* Handle device broadcast (64-bit version) */
|
|
#if (WINVER >= 0x0501)
|
|
typedef struct _DEV_BROADCAST_HANDLE64 {
|
|
DWORD dbch_size;
|
|
DWORD dbch_devicetype;
|
|
DWORD dbch_reserved;
|
|
ULONG64 dbch_handle;
|
|
ULONG64 dbch_hdevnotify;
|
|
GUID dbch_eventguid;
|
|
LONG dbch_nameoffset;
|
|
BYTE dbch_data[1];
|
|
} DEV_BROADCAST_HANDLE64;
|
|
typedef DEV_BROADCAST_HANDLE64 *PDEV_BROADCAST_HANDLE64;
|
|
#endif
|
|
|
|
/* Device instance device broadcast */
|
|
#if (WINVER >= 0x060A)
|
|
typedef struct _DEV_BROADCAST_DEVINST_A {
|
|
DWORD dbci_size;
|
|
DWORD dbci_devicetype;
|
|
DWORD dbci_reserved;
|
|
DWORD dbci_flags;
|
|
char dbci_devinst[200];
|
|
} DEV_BROADCAST_DEVINST_A;
|
|
typedef DEV_BROADCAST_DEVINST_A *PDEV_BROADCAST_DEVINST_A;
|
|
typedef struct _DEV_BROADCAST_DEVINST_W {
|
|
DWORD dbci_size;
|
|
DWORD dbci_devicetype;
|
|
DWORD dbci_reserved;
|
|
DWORD dbci_flags;
|
|
wchar_t dbci_devinst[200];
|
|
} DEV_BROADCAST_DEVINST_W;
|
|
typedef DEV_BROADCAST_DEVINST_W *PDEV_BROADCAST_DEVINST_W;
|
|
#ifdef UNICODE
|
|
typedef DEV_BROADCAST_DEVINST_W DEV_BROADCAST_DEVINST;
|
|
typedef PDEV_BROADCAST_DEVINST_W PDEV_BROADCAST_DEVINST;
|
|
#else
|
|
typedef DEV_BROADCAST_DEVINST_A DEV_BROADCAST_DEVINST;
|
|
typedef PDEV_BROADCAST_DEVINST_A PDEV_BROADCAST_DEVINST;
|
|
#endif
|
|
#endif
|
|
|
|
/* User-defined device broadcast */
|
|
struct _DEV_BROADCAST_USERDEFINED {
|
|
struct _DEV_BROADCAST_HDR dbud_dbh;
|
|
char dbud_szName[1];
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _DBT_H */
|