diff --git a/.gitignore b/.gitignore
index 02568362d..8b855c4f9 100755
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,4 @@
*.autosave
/ZeroTier One.zip
/ZeroTier One.dmg
+/windows/x64
diff --git a/ext/bin/tap-windows/x64/ztTap100.inf b/ext/bin/tap-windows/x64/ztTap100.inf
deleted file mode 100644
index ff7eb6a26..000000000
--- a/ext/bin/tap-windows/x64/ztTap100.inf
+++ /dev/null
@@ -1,85 +0,0 @@
-[Version]
-Signature="$WINDOWS NT$"
-Class=Net
-ClassGuid={4d36e972-e325-11ce-bfc1-08002be10318}
-Provider=%Provider%
-CatalogFile=ztTap100.cat
-DriverVer=01/20/2014,14.30.21.864
-
-
-[Strings]
-DeviceDescription = "ZeroTier One Ethernet Tap"
-Provider = "ZeroTier Networks"
-
-[Manufacturer]
-%Provider%=ztTap100,NTamd64
-
-[ztTap100]
-%DeviceDescription%=ztTap100.ndi,ztTap100
-
-[ztTap100.NTamd64]
-%DeviceDescription%=ztTap100.ndi,ztTap100
-
-[ztTap100.ndi]
-CopyFiles = ztTap100.driver,ztTap100.files
-AddReg = ztTap100.reg
-AddReg = ztTap100.params.reg
-Characteristics = 0x81
-
-[ztTap100.ndi.Services]
-AddService = ztTap100, 2, ztTap100.service
-
-[ztTap100.reg]
-HKR, Ndi, Service, 0, "ztTap100"
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
-HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
-HKR, , Manufacturer, 0, "%Provider%"
-HKR, , ProductName, 0, "%DeviceDescription%"
-
-[ztTap100.params.reg]
-HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
-HKR, Ndi\params\MTU, Type, 0, "int"
-HKR, Ndi\params\MTU, Default, 0, "2800"
-HKR, Ndi\params\MTU, Optional, 0, "0"
-HKR, Ndi\params\MTU, Min, 0, "100"
-HKR, Ndi\params\MTU, Max, 0, "2800"
-HKR, Ndi\params\MTU, Step, 0, "1"
-HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
-HKR, Ndi\params\MediaStatus, Type, 0, "enum"
-HKR, Ndi\params\MediaStatus, Default, 0, "0"
-HKR, Ndi\params\MediaStatus, Optional, 0, "0"
-HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
-HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
-HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
-HKR, Ndi\params\MAC, Type, 0, "edit"
-HKR, Ndi\params\MAC, Optional, 0, "1"
-HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
-HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
-HKR, Ndi\params\AllowNonAdmin, Default, 0, "0"
-HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
-HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
-HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
-
-[ztTap100.service]
-DisplayName = %DeviceDescription%
-ServiceType = 1
-StartType = 3
-ErrorControl = 1
-LoadOrderGroup = NDIS
-ServiceBinary = %12%\ztTap100.sys
-
-[SourceDisksNames]
-1 = %DeviceDescription%, ztTap100.sys
-
-[SourceDisksFiles]
-ztTap100.sys = 1
-
-[DestinationDirs]
-ztTap100.files = 11
-ztTap100.driver = 12
-
-[ztTap100.files]
-;
-
-[ztTap100.driver]
-ztTap100.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
diff --git a/ext/bin/tap-windows/x64/ztTap100.sys b/ext/bin/tap-windows/x64/ztTap100.sys
deleted file mode 100644
index 6641337f1..000000000
Binary files a/ext/bin/tap-windows/x64/ztTap100.sys and /dev/null differ
diff --git a/ext/bin/tap-windows/x64/zttap100.cat b/ext/bin/tap-windows/x64/zttap100.cat
deleted file mode 100644
index e1fdb5fd1..000000000
Binary files a/ext/bin/tap-windows/x64/zttap100.cat and /dev/null differ
diff --git a/ext/bin/tap-windows/x86/ztTap100.inf b/ext/bin/tap-windows/x86/ztTap100.inf
deleted file mode 100644
index 1849019bf..000000000
--- a/ext/bin/tap-windows/x86/ztTap100.inf
+++ /dev/null
@@ -1,85 +0,0 @@
-[Version]
-Signature="$WINDOWS NT$"
-Class=Net
-ClassGuid={4d36e972-e325-11ce-bfc1-08002be10318}
-Provider=%Provider%
-CatalogFile=ztTap100.cat
-DriverVer=01/20/2014,14.30.31.745
-
-
-[Strings]
-DeviceDescription = "ZeroTier One Ethernet Tap"
-Provider = "ZeroTier Networks"
-
-[Manufacturer]
-%Provider%=ztTap100,NTamd64
-
-[ztTap100]
-%DeviceDescription%=ztTap100.ndi,ztTap100
-
-[ztTap100.NTamd64]
-%DeviceDescription%=ztTap100.ndi,ztTap100
-
-[ztTap100.ndi]
-CopyFiles = ztTap100.driver,ztTap100.files
-AddReg = ztTap100.reg
-AddReg = ztTap100.params.reg
-Characteristics = 0x81
-
-[ztTap100.ndi.Services]
-AddService = ztTap100, 2, ztTap100.service
-
-[ztTap100.reg]
-HKR, Ndi, Service, 0, "ztTap100"
-HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
-HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
-HKR, , Manufacturer, 0, "%Provider%"
-HKR, , ProductName, 0, "%DeviceDescription%"
-
-[ztTap100.params.reg]
-HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
-HKR, Ndi\params\MTU, Type, 0, "int"
-HKR, Ndi\params\MTU, Default, 0, "2800"
-HKR, Ndi\params\MTU, Optional, 0, "0"
-HKR, Ndi\params\MTU, Min, 0, "100"
-HKR, Ndi\params\MTU, Max, 0, "2800"
-HKR, Ndi\params\MTU, Step, 0, "1"
-HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
-HKR, Ndi\params\MediaStatus, Type, 0, "enum"
-HKR, Ndi\params\MediaStatus, Default, 0, "0"
-HKR, Ndi\params\MediaStatus, Optional, 0, "0"
-HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
-HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
-HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
-HKR, Ndi\params\MAC, Type, 0, "edit"
-HKR, Ndi\params\MAC, Optional, 0, "1"
-HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
-HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
-HKR, Ndi\params\AllowNonAdmin, Default, 0, "0"
-HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
-HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
-HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
-
-[ztTap100.service]
-DisplayName = %DeviceDescription%
-ServiceType = 1
-StartType = 3
-ErrorControl = 1
-LoadOrderGroup = NDIS
-ServiceBinary = %12%\ztTap100.sys
-
-[SourceDisksNames]
-1 = %DeviceDescription%, ztTap100.sys
-
-[SourceDisksFiles]
-ztTap100.sys = 1
-
-[DestinationDirs]
-ztTap100.files = 11
-ztTap100.driver = 12
-
-[ztTap100.files]
-;
-
-[ztTap100.driver]
-ztTap100.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
diff --git a/ext/bin/tap-windows/x86/ztTap100.sys b/ext/bin/tap-windows/x86/ztTap100.sys
deleted file mode 100644
index 6dce8e8e3..000000000
Binary files a/ext/bin/tap-windows/x86/ztTap100.sys and /dev/null differ
diff --git a/ext/bin/tap-windows/x86/zttap100.cat b/ext/bin/tap-windows/x86/zttap100.cat
deleted file mode 100644
index 9eff33eba..000000000
Binary files a/ext/bin/tap-windows/x86/zttap100.cat and /dev/null differ
diff --git a/node/EthernetTap.cpp b/node/EthernetTap.cpp
index 231fde066..96d2839a3 100644
--- a/node/EthernetTap.cpp
+++ b/node/EthernetTap.cpp
@@ -1168,7 +1168,7 @@ EthernetTap::EthernetTap(
Utils::snprintf(tapPath,sizeof(tapPath),"\\\\.\\Global\\%s.tap",_myDeviceInstanceId.c_str());
_tap = CreateFileA(tapPath,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_SYSTEM|FILE_FLAG_OVERLAPPED,NULL);
if (_tap == INVALID_HANDLE_VALUE)
- throw std::runtime_error("unable to open tap in \\\\.\\Global\\ namespace");
+ throw std::runtime_error(std::string("unable to open tap device ")+tapPath);
// Set media status to enabled
uint32_t tmpi = 1;
diff --git a/windows/TapDriver Package/TapDriver Package.vcxproj b/windows/TapDriver Package/TapDriver Package.vcxproj
index 3e311b482..3f0d1df08 100644
--- a/windows/TapDriver Package/TapDriver Package.vcxproj
+++ b/windows/TapDriver Package/TapDriver Package.vcxproj
@@ -195,36 +195,6 @@
false
-
-
- false
- false
- false
- false
- false
- false
- true
- true
- true
- true
- true
- true
-
-
- true
- true
- true
- true
- true
- true
- false
- false
- false
- false
- false
- false
-
-
diff --git a/windows/TapDriver Package/TapDriver Package.vcxproj.filters b/windows/TapDriver Package/TapDriver Package.vcxproj.filters
index 44a2620e8..e1b34f2aa 100644
--- a/windows/TapDriver Package/TapDriver Package.vcxproj.filters
+++ b/windows/TapDriver Package/TapDriver Package.vcxproj.filters
@@ -6,12 +6,4 @@
inf;inv;inx;mof;mc;
-
-
- Driver Files
-
-
- Driver Files
-
-
\ No newline at end of file
diff --git a/windows/TapDriver/TapDriver.vcxproj b/windows/TapDriver/TapDriver.vcxproj
index 33421c842..ec1d9c454 100644
--- a/windows/TapDriver/TapDriver.vcxproj
+++ b/windows/TapDriver/TapDriver.vcxproj
@@ -173,9 +173,10 @@
http://timestamp.digicert.com/
- ztTap100
+ zttap200
$(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\
http://timestamp.digicert.com/
+ true
ztTap100
@@ -266,7 +267,7 @@
-
+
diff --git a/windows/TapDriver/TapDriver.vcxproj.filters b/windows/TapDriver/TapDriver.vcxproj.filters
index 1b864a260..570ea7273 100644
--- a/windows/TapDriver/TapDriver.vcxproj.filters
+++ b/windows/TapDriver/TapDriver.vcxproj.filters
@@ -68,7 +68,7 @@
-
+
Driver Files
diff --git a/windows/TapDriver/config.h b/windows/TapDriver/config.h
index 1dc6ac878..28bd73f69 100644
--- a/windows/TapDriver/config.h
+++ b/windows/TapDriver/config.h
@@ -1,12 +1,12 @@
-#define PRODUCT_NAME "ZeroTier One Ethernet Tap"
-#define PRODUCT_VERSION "1.0.0"
-#define PRODUCT_VERSION_RESOURCE 1,0,0,1
-#define PRODUCT_TAP_WIN_COMPONENT_ID "ztTap100"
-#define PRODUCT_TAP_WIN_MAJOR 1
+#define PRODUCT_NAME "ZeroTier One Virtual Network Port"
+#define PRODUCT_VERSION "2.0.0"
+#define PRODUCT_VERSION_RESOURCE 2,0,0,1
+#define PRODUCT_TAP_WIN_COMPONENT_ID "zttap200"
+#define PRODUCT_TAP_WIN_MAJOR 2
#define PRODUCT_TAP_WIN_MINOR 0
#define PRODUCT_TAP_WIN_PROVIDER "ZeroTier Networks"
#define PRODUCT_TAP_WIN_DEVICE_DESCRIPTION PRODUCT_NAME
-#define PRODUCT_TAP_WIN_RELDATE "01/20/2014"
+#define PRODUCT_TAP_WIN_RELDATE "01/22/2014"
#define TAP_DRIVER_MAJOR_VERSION PRODUCT_TAP_WIN_MAJOR
#define TAP_DRIVER_MINOR_VERSION PRODUCT_TAP_WIN_MINOR
diff --git a/windows/TapDriver/constants.h b/windows/TapDriver/constants.h
index 0e8d86f3a..78174d257 100644
--- a/windows/TapDriver/constants.h
+++ b/windows/TapDriver/constants.h
@@ -47,6 +47,5 @@
#define PACKET_QUEUE_SIZE 64 // tap -> userspace queue size
#define IRP_QUEUE_SIZE 16 // max number of simultaneous i/o operations from userspace
-#define INJECT_QUEUE_SIZE 16 // DHCP/ARP -> tap injection queue
#define TAP_LITTLE_ENDIAN // affects ntohs, htonl, etc. functions
diff --git a/windows/TapDriver/ztTap100.inf b/windows/TapDriver/zttap200.inf
similarity index 56%
rename from windows/TapDriver/ztTap100.inf
rename to windows/TapDriver/zttap200.inf
index cf31e9ff5..fdd05f537 100644
--- a/windows/TapDriver/ztTap100.inf
+++ b/windows/TapDriver/zttap200.inf
@@ -3,39 +3,39 @@ Signature="$WINDOWS NT$"
Class=Net
ClassGuid={4d36e972-e325-11ce-bfc1-08002be10318}
Provider=%Provider%
-CatalogFile=ztTap100.cat
-
+CatalogFile=zttap200.cat
[Strings]
-DeviceDescription = "ZeroTier One Ethernet Tap"
-Provider = "ZeroTier Networks"
+DeviceDescription = "ZeroTier One Virtual Network Port"
+Provider = "ZeroTier Networks LLC"
+; To build for x86, take NTamd64 off this and off the named section manually, build, then put it back!
[Manufacturer]
-%Provider%=ztTap100,NTamd64
+%Provider%=zttap200,NTamd64
-[ztTap100]
-%DeviceDescription%=ztTap100.ndi,ztTap100
+[zttap200]
+%DeviceDescription%=zttap200.ndi,zttap200
-[ztTap100.NTamd64]
-%DeviceDescription%=ztTap100.ndi,ztTap100
+[ztTap200.NTamd64]
+%DeviceDescription%=zttap200.ndi,zttap200
-[ztTap100.ndi]
-CopyFiles = ztTap100.driver,ztTap100.files
-AddReg = ztTap100.reg
-AddReg = ztTap100.params.reg
+[zttap200.ndi]
+CopyFiles = zttap200.driver,zttap200.files
+AddReg = zttap200.reg
+AddReg = zttap200.params.reg
Characteristics = 0x81
-[ztTap100.ndi.Services]
-AddService = ztTap100, 2, ztTap100.service
+[zttap200.ndi.Services]
+AddService = zttap200, 2, zttap200.service
-[ztTap100.reg]
-HKR, Ndi, Service, 0, "ztTap100"
+[zttap200.reg]
+HKR, Ndi, Service, 0, "zttap200"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, , Manufacturer, 0, "%Provider%"
HKR, , ProductName, 0, "%DeviceDescription%"
-[ztTap100.params.reg]
+[zttap200.params.reg]
HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
HKR, Ndi\params\MTU, Type, 0, "int"
HKR, Ndi\params\MTU, Default, 0, "2800"
@@ -52,33 +52,27 @@ HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
HKR, Ndi\params\MAC, Type, 0, "edit"
HKR, Ndi\params\MAC, Optional, 0, "1"
-HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
-HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
-HKR, Ndi\params\AllowNonAdmin, Default, 0, "0"
-HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
-HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
-HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
-[ztTap100.service]
+[zttap200.service]
DisplayName = %DeviceDescription%
ServiceType = 1
StartType = 3
ErrorControl = 1
LoadOrderGroup = NDIS
-ServiceBinary = %12%\ztTap100.sys
+ServiceBinary = %12%\zttap200.sys
[SourceDisksNames]
-1 = %DeviceDescription%, ztTap100.sys
+1 = %DeviceDescription%, zttap200.sys
[SourceDisksFiles]
-ztTap100.sys = 1
+zttap200.sys = 1
[DestinationDirs]
-ztTap100.files = 11
-ztTap100.driver = 12
+zttap200.files = 11
+zttap200.driver = 12
-[ztTap100.files]
+[zttap200.files]
;
-[ztTap100.driver]
-ztTap100.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
+[zttap200.driver]
+zttap200.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK