PDEV_BROADCAST_DEVNODE
PDEV_BROADCAST_HDR
PDEV_BROADCAST_NET
PDEV_BROADCAST_OEM
PDEV_BROADCAST_PORT
PDEV_BROADCAST_VOLUME
PVolLockBroadcast
TDEV_BROADCAST_DEVNODE
TDEV_BROADCAST_HDR
TDEV_BROADCAST_HEADER
TDEV_BROADCAST_NET
TDEV_BROADCAST_OEM
TDEV_BROADCAST_PORT
TDEV_BROADCAST_USERDEFINED
TDEV_BROADCAST_VOLUME
TVolLockBroadcast
BSF_FLUSHDISK
BSF_FORCEIFHUNG
BSF_IGNORECURRENTTASK
BSF_MSGSRV32ISOK
BSF_MSGSRV32ISOK_BIT
BSF_NOHANG
BSF_NOTIMEOUTIFNOTHUNG
BSF_POSTMESSAGE
BSF_QUERY
BSM_ALLCOMPONENTS
BSM_APPLICATIONS
BSM_INSTALLABLEDRIVERS
BSM_NETDRIVER
BSM_VXDS
DBTF_MEDIA
DBTF_NET
DBTF_RESOURCE
DBTF_SLOWNET
DBTF_XPORT
DBT_APPYBEGIN
DBT_APPYEND
DBT_CONFIGCHANGECANCELED
DBT_CONFIGCHANGED
DBT_CONFIGMGAPI32
DBT_CONFIGMGPRIVATE
DBT_DEVICEARRIVAL
DBT_DEVICEQUERYREMOVE
DBT_DEVICEQUERYREMOVEFAILED
DBT_DEVICEREMOVECOMPLETE
DBT_DEVICEREMOVEPENDING
DBT_DEVICETYPESPECIFIC
DBT_DEVNODES_CHANGED
DBT_DEVTYP_DEVNODE
DBT_DEVTYP_NET
DBT_DEVTYP_OEM
DBT_DEVTYP_PORT
DBT_DEVTYP_VOLUME
DBT_MONITORCHANGE
DBT_NO_DISK_SPACE
DBT_QUERYCHANGECONFIG
DBT_SHELLLOGGEDON
DBT_USERDEFINED
DBT_VOLLOCKLOCKFAILED
DBT_VOLLOCKLOCKRELEASED
DBT_VOLLOCKLOCKTAKEN
DBT_VOLLOCKQUERYLOCK
DBT_VOLLOCKQUERYUNLOCK
DBT_VOLLOCKUNLOCKFAILED
DBT_VPOWERDAPI
LOCKF_LOGICAL_LOCK
LOCKF_PHYSICAL_LOCK
LOCKP_ALLOW_MEM_MAPPING
LOCKP_ALLOW_WRITES
LOCKP_FAIL_MEM_MAPPING
LOCKP_FAIL_WRITES
LOCKP_LOCK_FOR_FORMAT
LOCKP_USER_MASK
WM_DEVICECHANGE
PDEV_BROADCAST_DEVNODE = ^TDEV_BROADCAST_DEVNODE
PDEV_BROADCAST_HDR = ^TDEV_BROADCAST_HDR
* Device broadcast header
PDEV_BROADCAST_NET = ^TDEV_BROADCAST_NET
PDEV_BROADCAST_OEM = ^TDEV_BROADCAST_OEM
PDEV_BROADCAST_PORT = ^TDEV_BROADCAST_PORT
network volume
PDEV_BROADCAST_VOLUME = ^TDEV_BROADCAST_VOLUME
PVolLockBroadcast = ^TVolLockBroadcast
* Structure for volume lock broadcast
TDEV_BROADCAST_DEVNODE = record
dbcd_size : DWORD;
dbcd_devicetype : DWORD;
dbcd_reserved : DWORD;
dbcd_devnode : DWORD;
end;
TDEV_BROADCAST_HDR = record
dbch_size : longint;
dbch_devicetype : longint;
dbch_reserved : longint;
end;
TDEV_BROADCAST_HEADER = record
dbcd_size : DWORD;
dbcd_devicetype : DWORD;
dbcd_reserved : DWORD;
end;
network resource
TDEV_BROADCAST_NET = record
dbcn_size : DWORD;
dbcn_devicetype : DWORD;
dbcn_reserved : DWORD;
dbcn_resource : DWORD;
dbcn_flags : DWORD;
end;
TDEV_BROADCAST_OEM = record
dbco_size : DWORD;
dbco_devicetype : DWORD;
dbco_reserved : DWORD;
dbco_identifier : DWORD;
dbco_suppfunc : DWORD;
end;
TDEV_BROADCAST_PORT = record
dbcp_size : DWORD;
dbcp_devicetype : DWORD;
dbcp_reserved : DWORD;
dbcp_name : PChar;
end;
TDEV_BROADCAST_USERDEFINED = record
dbud_dbh : TDEV_BROADCAST_HDR;
dbud_szName : PChar;
end;
TDEV_BROADCAST_VOLUME = record
dbcv_size : DWORD;
dbcv_devicetype : DWORD;
dbcv_reserved : DWORD;
dbcv_unitmask : DWORD;
dbcv_flags : DWORD;
end;
TVolLockBroadcast = record
vlb_dbh : TDEV_BROADCAST_HDR;
vlb_owner : DWORD;
vlb_perms : byte;
vlb_lockType : byte;
vlb_drive : byte;
vlb_flags : byte;
end;
BSF_FLUSHDISK = $00000004
Meaningless for VxDs
BSF_FORCEIFHUNG = $00000020
BSF_IGNORECURRENTTASK = $00000002
BSF_MSGSRV32ISOK = $80000000
BSF_MSGSRV32ISOK_BIT = 31
Called synchronously from PM API
BSF_NOHANG = $00000008
Shouldn't be used by VxDs
BSF_NOTIMEOUTIFNOTHUNG = $00000040
BSF_POSTMESSAGE = $00000010
BSF_QUERY = $00000001
XLATOFF } //#ifdef IS_32 //const DBTFAR //#else //const DBTFAR far //#endif { XLATON }
* Broadcast message and receipient flags.
*
* Note that there is a third "flag". If the wParam has:
*
* bit 15 on: lparam is a pointer and bit 14 is meaningfull.
* bit 15 off: lparam is just a UNLONG data type.
*
* bit 14 on: lparam is a pointer to an ASCIIZ string.
* bit 14 off: lparam is a pointer to a binary struture starting with
* a dword describing the length of the structure.
BSM_ALLCOMPONENTS = $00000000
Called synchronously from PM API
BSM_APPLICATIONS = $00000008
BSM_INSTALLABLEDRIVERS = $00000004
BSM_NETDRIVER = $00000002
BSM_VXDS = $00000001
DBTF_MEDIA = $0001
DBTF_NET = $0002
media comings and goings
DBTF_RESOURCE = $00000001
DBTF_SLOWNET = $00000004
new transport coming or going
DBTF_XPORT = $00000002
network resource
DBT_APPYBEGIN = $0000
* Message = WM_DEVICECHANGE
* wParam = DBT_APPYBEGIN
* lParam = (not used)
*
* 'Appy-time is now available. This message is itself sent
* at 'Appy-time.
*
* Message = WM_DEVICECHANGE
* wParam = DBT_APPYEND
* lParam = (not used)
*
* 'Appy-time is no longer available. This message is *NOT* sent
* at 'Appy-time. (It cannot be, because 'Appy-time is gone.)
*
* NOTE! It is possible for DBT_APPYBEGIN and DBT_APPYEND to be sent
* multiple times during a single Windows session. Each appearance of
* 'Appy-time is bracketed by these two messages, but 'Appy-time may
* momentarily become unavailable during otherwise normal Windows
* processing. The current status of 'Appy-time availability can always
* be obtained from a call to _SHELL_QueryAppyTimeAvailable.
DBT_APPYEND = $0001
DBT_CONFIGCHANGECANCELED = $0019
* Message = WM_DEVICECHANGE
* wParam = DBT_CONFIGCHANGECANCELED
* lParam = 0
*
* someone cancelled the config change
DBT_CONFIGCHANGED = $0018
* Message = WM_DEVICECHANGE
* wParam = DBT_CONFIGCHANGED
* lParam = 0
*
* sent when a config has changed
DBT_CONFIGMGAPI32 = $0022
* Message = WM_DEVICECHANGE
* wParam = DBT_CONFIGMGAPI
* lParam = CONFIGMG API Packet
*
* CONFIGMG ring 3 call.
DBT_CONFIGMGPRIVATE = $7FFF
DBT_DEVICEARRIVAL = $8000
* 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.
*
DBT_DEVICEQUERYREMOVE = $8001
system detected a new device
DBT_DEVICEQUERYREMOVEFAILED = $8002
wants to remove, may fail
DBT_DEVICEREMOVECOMPLETE = $8004
about to remove, still avail.
DBT_DEVICEREMOVEPENDING = $8003
removal aborted
DBT_DEVICETYPESPECIFIC = $8005
device is gone
DBT_DEVNODES_CHANGED = $0007
* Message = WM_DEVICECHANGE
* wParam = DBT_DEVNODES_CHANGED
* lParam = 0
*
* send when configmg finished a process tree batch. Some devnodes
* may have been added or removed. This is used by ring3 people which
* need to be refreshed whenever any devnode changed occur (like
* device manager). People specific to certain devices should use
* DBT_DEVICE* instead.
DBT_DEVTYP_DEVNODE = $00000001
oem-defined device type
DBT_DEVTYP_NET = $00000004
serial, parallel
DBT_DEVTYP_OEM = $00000000
type specific event
DBT_DEVTYP_PORT = $00000003
logical volume
DBT_DEVTYP_VOLUME = $00000002
devnode number
DBT_MONITORCHANGE = $001B
* Message = WM_DEVICECHANGE
* wParam = DBT_MONITORCHANGE
* lParam = new resolution to use (LOWORD=x, HIWORD=y)
* if 0, use the default res for current config
*
* this message is sent when the display monitor has changed
* and the system should change the display mode to match it.
DBT_NO_DISK_SPACE = $0047
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.
DBT_QUERYCHANGECONFIG = $0017
* Message = WM_DEVICECHANGE
* wParam = DBT_QUERYCHANGECONFIG
* lParam = 0
*
* sent to ask if a config change is allowed
DBT_SHELLLOGGEDON = $0020
* Message = WM_DEVICECHANGE
* wParam = DBT_SHELLLOGGEDON
* lParam = 0
*
* The shell has finished login on: VxD can now do Shell_EXEC.
DBT_USERDEFINED = $FFFF
VPOWERD API for Win95
* User-defined message types all use wParam = = $FFFF 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.
DBT_VOLLOCKLOCKFAILED = $8043
DBT_VOLLOCKLOCKRELEASED = $8045
DBT_VOLLOCKLOCKTAKEN = $8042
DBT_VOLLOCKQUERYLOCK = $8041
* Message = WM_DEVICECHANGE
* wParam = DBT_VOLLOCK*
* lParam = pointer to VolLockBroadcast structure described below
*
* Messages issued by IFSMGR for volume locking purposes on WM_DEVICECHANGE.
* All these messages pass a pointer to a struct which has no pointers.
DBT_VOLLOCKQUERYUNLOCK = $8044
DBT_VOLLOCKUNLOCKFAILED = $8046
DBT_VPOWERDAPI = $8100
new incoming transport is slow (dbcn_resource undefined for now
LOCKF_LOGICAL_LOCK = $00
Level 0 lock for format
* Values for vlb_flags
LOCKF_PHYSICAL_LOCK = $01
Bit 0 clear - logical lock
LOCKP_ALLOW_MEM_MAPPING = $00
Bit 1 set - fail memory mappings
LOCKP_ALLOW_WRITES = $01
* Values for vlb_perms
LOCKP_FAIL_MEM_MAPPING = $02
Bit 0 clear - fail writes
LOCKP_FAIL_WRITES = $00
Bit 0 set - allow writes
LOCKP_LOCK_FOR_FORMAT = $04
Mask for user lock flags
LOCKP_USER_MASK = $03
Bit 1 clear - allow memory mappings
WM_DEVICECHANGE = $0219
BroadcastSpecialMessage constants. //