?? dbt.h
字號:
/*****************************************************************************
*
* (C) Copyright MICROSOFT Corp., 1993-1995
*
* Title: DBT.H - Equates for WM_DEVICECHANGE and BroadcastSystemMessage
*
* Version: 4.00
*
* Date: 24-May-1993
*
* Author: rjc
*
*----------------------------------------------------------------------------
*
* Change log:
*
* DATE REV DESCRIPTION
* ----------- --- ----------------------------------------------------------
*
*****************************************************************************/
#ifndef _DBT_H
#define _DBT_H
/*
* BroadcastSpecialMessage constants.
*/
#define WM_DEVICECHANGE 0x0219
#ifndef WINVER
#define WINVER 0x0500
#endif
/* XLATOFF */
#ifdef IS_32
#define DBTFAR
#else
#define DBTFAR far
#endif
/* XLATON */
#ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
#define _WCHAR_T_DEFINED
#endif
#ifndef GUID_DEFINED
#define GUID_DEFINED
typedef struct _GUID {
ULONG Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
#endif // !defined(GUID_DEFINED)
/*
* 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.
*/
#define BSF_QUERY 0x00000001
#define BSF_IGNORECURRENTTASK 0x00000002 /* Meaningless for VxDs */
#define BSF_FLUSHDISK 0x00000004 /* Shouldn't be used by VxDs */
#define BSF_NOHANG 0x00000008
#define BSF_POSTMESSAGE 0x00000010
#define BSF_FORCEIFHUNG 0x00000020
#define BSF_NOTIMEOUTIFNOTHUNG 0x00000040
#define BSF_MSGSRV32ISOK 0x80000000 /* Called synchronously from PM API */
#define BSF_MSGSRV32ISOK_BIT 31 /* Called synchronously from PM API */
#define BSM_ALLCOMPONENTS 0x00000000
#define BSM_VXDS 0x00000001
#define BSM_NETDRIVER 0x00000002
#define BSM_INSTALLABLEDRIVERS 0x00000004
#define BSM_APPLICATIONS 0x00000008
/*
* 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.
*/
#define DBT_APPYBEGIN 0x0000
#define DBT_APPYEND 0x0001
/*
* 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.
*/
#define DBT_DEVNODES_CHANGED 0x0007
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_QUERYCHANGECONFIG
* lParam = 0
*
* sent to ask if a config change is allowed
*/
#define DBT_QUERYCHANGECONFIG 0x0017
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_CONFIGCHANGED
* lParam = 0
*
* sent when a config has changed
*/
#define DBT_CONFIGCHANGED 0x0018
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_CONFIGCHANGECANCELED
* lParam = 0
*
* someone cancelled the config change
*/
#define DBT_CONFIGCHANGECANCELED 0x0019
/*
* 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.
*/
#define DBT_MONITORCHANGE 0x001B
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_SHELLLOGGEDON
* lParam = 0
*
* The shell has finished login on: VxD can now do Shell_EXEC.
*/
#define DBT_SHELLLOGGEDON 0x0020
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_CONFIGMGAPI
* lParam = CONFIGMG API Packet
*
* CONFIGMG ring 3 call.
*/
#define DBT_CONFIGMGAPI32 0x0022
/*
* Message = WM_DEVICECHANGE
* wParam = DBT_VXDINITCOMPLETE
* lParam = 0
*
* CONFIGMG ring 3 call.
*/
#define DBT_VXDINITCOMPLETE 0x0023
/*
* 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.
*/
#define DBT_VOLLOCKQUERYLOCK 0x8041
#define DBT_VOLLOCKLOCKTAKEN 0x8042
#define DBT_VOLLOCKLOCKFAILED 0x8043
#define DBT_VOLLOCKQUERYUNLOCK 0x8044
#define DBT_VOLLOCKLOCKRELEASED 0x8045
#define DBT_VOLLOCKUNLOCKFAILED 0x8046
/*
* Device broadcast header
*/
struct _DEV_BROADCAST_HDR { /* */
DWORD dbch_size;
DWORD dbch_devicetype;
DWORD dbch_reserved;
};
typedef struct _DEV_BROADCAST_HDR DEV_BROADCAST_HDR;
typedef DEV_BROADCAST_HDR DBTFAR *PDEV_BROADCAST_HDR;
/*
* Structure for volume lock broadcast
*/
typedef struct VolLockBroadcast VolLockBroadcast;
typedef VolLockBroadcast *pVolLockBroadcast;
struct VolLockBroadcast {
struct _DEV_BROADCAST_HDR vlb_dbh;
DWORD vlb_owner; // thread on which lock request is being issued
BYTE vlb_perms; // lock permission flags defined below
BYTE vlb_lockType; // type of lock
BYTE vlb_drive; // drive on which lock is issued
BYTE vlb_flags; // miscellaneous flags
};
/*
* Values for vlb_perms
*/
#define LOCKP_ALLOW_WRITES 0x01 // Bit 0 set - allow writes
#define LOCKP_FAIL_WRITES 0x00 // Bit 0 clear - fail writes
#define LOCKP_FAIL_MEM_MAPPING 0x02 // Bit 1 set - fail memory mappings
#define LOCKP_ALLOW_MEM_MAPPING 0x00 // Bit 1 clear - allow memory mappings
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -