Unit scSysInfoDBT

Classes

Functions

Types

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

Constants

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

Variables


Functions


Types


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;

Constants

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. //

Variables