Sample Code
Windows Driver Samples/ Toaster Sample Driver/ C++/ exe/ notify/ notify.h/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | /*++ Copyright (c) 1990-2000 Microsoft Corporation All Rights Reserved Module Name: notify.h Abstract: Author: Eliyas Yakub Nov 23, 1999 Environment: Revision History: --*/ #ifndef __NOTIFY_H #define __NOTIFY_H // // Copied Macros from ntddk.h // #define CONTAINING_RECORD(address, type, field) ((type *)( \ ( PCHAR )(address) - \ ( ULONG_PTR )(&((type *)0)->field))) #define InitializeListHead(ListHead) (\ (ListHead)->Flink = (ListHead)->Blink = (ListHead)) #define RemoveHeadList(ListHead) \ (ListHead)->Flink;\ {RemoveEntryList((ListHead)->Flink)} #define IsListEmpty(ListHead) \ ((ListHead)->Flink == (ListHead)) #define RemoveEntryList(Entry) {\ PLIST_ENTRY _EX_Blink;\ PLIST_ENTRY _EX_Flink;\ _EX_Flink = (Entry)->Flink;\ _EX_Blink = (Entry)->Blink;\ _EX_Blink->Flink = _EX_Flink;\ _EX_Flink->Blink = _EX_Blink;\ } #define InsertTailList(ListHead,Entry) {\ PLIST_ENTRY _EX_Blink;\ PLIST_ENTRY _EX_ListHead;\ _EX_ListHead = (ListHead);\ _EX_Blink = _EX_ListHead->Blink;\ (Entry)->Flink = _EX_ListHead;\ (Entry)->Blink = _EX_Blink;\ _EX_Blink->Flink = (Entry);\ _EX_ListHead->Blink = (Entry);\ } typedef struct _DEVICE_INFO { HANDLE hDevice; // file handle HDEVNOTIFY hHandleNotification; // notification handle TCHAR DeviceName[MAX_PATH]; // friendly name of device description TCHAR DevicePath[MAX_PATH]; // ULONG SerialNo; // Serial number of the device. LIST_ENTRY ListEntry; } DEVICE_INFO, *PDEVICE_INFO; typedef enum { PLUGIN = 1, UNPLUG, EJECT } USER_ACTION_TYPE; typedef struct _DIALOG_RESULT { ULONG SerialNo; PWCHAR DeviceId; } DIALOG_RESULT, *PDIALOG_RESULT; #define ID_EDIT 1 #define IDM_OPEN 100 #define IDM_CLOSE 101 #define IDM_EXIT 102 #define IDM_HIDE 103 #define IDM_PLUGIN 104 #define IDM_UNPLUG 105 #define IDM_EJECT 106 #define IDM_ENABLE 107 #define IDM_DISABLE 108 #define IDM_CLEAR 109 #define IDM_IOCTL 110 #define IDM_VERBOSE 111 #define IDD_DIALOG 115 #define IDD_DIALOG1 116 #define IDD_DIALOG2 117 #define ID_OK 118 #define ID_CANCEL 119 #define IDC_SERIALNO 1000 #define IDC_DEVICEID 1001 #define IDC_STATIC -1 #define IDI_CLASS_ICON 200 LRESULT FAR PASCAL WndProc ( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); BOOLEAN EnumExistingDevices( HWND hWnd ); BOOL HandleDeviceInterfaceChange( HWND hwnd, DWORD evtype, PDEV_BROADCAST_DEVICEINTERFACE dip ); BOOL HandleDeviceChange( HWND hwnd, DWORD evtype, PDEV_BROADCAST_HANDLE dhp ); LRESULT HandleCommands( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); BOOLEAN Cleanup( HWND hWnd ); BOOL GetDeviceDescription( _In_ LPTSTR DevPath, _Out_writes_bytes_(OutBufferLen) PBYTE OutBuffer, _In_ ULONG OutBufferLen, _In_ PULONG SerialNo ); BOOLEAN OpenBusInterface ( _In_ ULONG SerialNo, _When_ (Action == PLUGIN, _In_) LPWSTR DeviceId, _In_ USER_ACTION_TYPE Action ); INT_PTR CALLBACK DlgProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); void SendIoctlToFilterDevice(); #endif |
Our Services
-
What our customers say about us?
Read our customer testimonials to find out why our clients keep returning for their projects.
View Testimonials