00001 /* 00002 * TAP-Win32 -- A kernel driver to provide virtual tap device functionality 00003 * on Windows. Originally derived from the CIPE-Win32 00004 * project by Damion K. Wilson, with extensive modifications by 00005 * James Yonan. 00006 * 00007 * All source code which derives from the CIPE-Win32 project is 00008 * Copyright (C) Damion K. Wilson, 2003, and is released under the 00009 * GPL version 2 (see below). 00010 * 00011 * All other source code is Copyright (C) James Yonan, 2003-2004, 00012 * and is released under the GPL version 2 (see below). 00013 * 00014 * This program is free software; you can redistribute it and/or modify 00015 * it under the terms of the GNU General Public License as published by 00016 * the Free Software Foundation; either version 2 of the License, or 00017 * (at your option) any later version. 00018 * 00019 * This program is distributed in the hope that it will be useful, 00020 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00022 * GNU General Public License for more details. 00023 * 00024 * You should have received a copy of the GNU General Public License 00025 * along with this program (see the file COPYING included with this 00026 * distribution); if not, write to the Free Software Foundation, Inc., 00027 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00028 */ 00029 00030 //=============================================== 00031 // This file is included both by OpenVPN and 00032 // the TAP-Win32 driver and contains definitions 00033 // common to both. 00034 //=============================================== 00035 00036 //============= 00037 // TAP IOCTLs 00038 //============= 00039 00040 #define TAP_CONTROL_CODE(request,method) \ 00041 CTL_CODE (FILE_DEVICE_UNKNOWN, request, method, FILE_ANY_ACCESS) 00042 00043 #define TAP_IOCTL_GET_MAC TAP_CONTROL_CODE (1, METHOD_BUFFERED) 00044 #define TAP_IOCTL_GET_VERSION TAP_CONTROL_CODE (2, METHOD_BUFFERED) 00045 #define TAP_IOCTL_GET_MTU TAP_CONTROL_CODE (3, METHOD_BUFFERED) 00046 #define TAP_IOCTL_GET_INFO TAP_CONTROL_CODE (4, METHOD_BUFFERED) 00047 #define TAP_IOCTL_CONFIG_POINT_TO_POINT TAP_CONTROL_CODE (5, METHOD_BUFFERED) 00048 #define TAP_IOCTL_SET_MEDIA_STATUS TAP_CONTROL_CODE (6, METHOD_BUFFERED) 00049 #define TAP_IOCTL_CONFIG_DHCP_MASQ TAP_CONTROL_CODE (7, METHOD_BUFFERED) 00050 #define TAP_IOCTL_GET_LOG_LINE TAP_CONTROL_CODE (8, METHOD_BUFFERED) 00051 #define TAP_IOCTL_CONFIG_DHCP_SET_OPT TAP_CONTROL_CODE (9, METHOD_BUFFERED) 00052 00053 //================= 00054 // Registry keys 00055 //================= 00056 00057 #define ADAPTER_KEY "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}" 00058 00059 #define NETWORK_CONNECTIONS_KEY "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}" 00060 00061 //====================== 00062 // Filesystem prefixes 00063 //====================== 00064 00065 #define USERMODEDEVICEDIR "\\\\.\\Global\\" 00066 #define SYSDEVICEDIR "\\Device\\" 00067 #define USERDEVICEDIR "\\DosDevices\\Global\\" 00068 #define TAPSUFFIX ".tap" 00069 00070 //========================================================= 00071 // TAP_COMPONENT_ID -- This string defines the TAP driver 00072 // type -- different component IDs can reside in the system 00073 // simultaneously. 00074 //========================================================= 00075 00076 #define TAP_COMPONENT_ID "tap0801"
1.5.1