From 2da6a7570b1bdbb99da9662c7e66c3028f342a5d Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 22 Jan 2014 18:38:45 -0800 Subject: [PATCH] More tap driver work, increment version number, remove old binaries since signatures may not have been valid. --- .gitignore | 1 + ext/bin/tap-windows/x64/ztTap100.inf | 85 ------------------ ext/bin/tap-windows/x64/ztTap100.sys | Bin 30392 -> 0 bytes ext/bin/tap-windows/x64/zttap100.cat | Bin 8974 -> 0 bytes ext/bin/tap-windows/x86/ztTap100.inf | 85 ------------------ ext/bin/tap-windows/x86/ztTap100.sys | Bin 27800 -> 0 bytes ext/bin/tap-windows/x86/zttap100.cat | Bin 1048 -> 0 bytes node/EthernetTap.cpp | 2 +- .../TapDriver Package.vcxproj | 30 ------- .../TapDriver Package.vcxproj.filters | 8 -- windows/TapDriver/TapDriver.vcxproj | 5 +- windows/TapDriver/TapDriver.vcxproj.filters | 2 +- windows/TapDriver/config.h | 12 +-- windows/TapDriver/constants.h | 1 - .../TapDriver/{ztTap100.inf => zttap200.inf} | 60 ++++++------- 15 files changed, 39 insertions(+), 252 deletions(-) delete mode 100644 ext/bin/tap-windows/x64/ztTap100.inf delete mode 100644 ext/bin/tap-windows/x64/ztTap100.sys delete mode 100644 ext/bin/tap-windows/x64/zttap100.cat delete mode 100644 ext/bin/tap-windows/x86/ztTap100.inf delete mode 100644 ext/bin/tap-windows/x86/ztTap100.sys delete mode 100644 ext/bin/tap-windows/x86/zttap100.cat rename windows/TapDriver/{ztTap100.inf => zttap200.inf} (56%) 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 6641337f136642bed7aafa794dcb8e6fe052ccf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30392 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

AP<7{?`j_jC zOIPBzz&+ZAF;;sv6-{i-Xjm;`^Lm|(gqd@gh1446EjLeXRnXL#ai;k}_HvhLm&An{ zK8d78StbjWR$$681-mzagJ_sL9uR8YC(Q+ zW=VcgrCvr!?r7Btu4ZXpwKlfFB8icarOKd!$oeP%rpth-%>^2@chT2n9Rm=YTU!c|$hhA9N)=a(orJAyk&h6YB4hR|wBoY%93GJW}X*8jJHGUbUu92gy%5ub%rnuVIzi@xO!9U(Niz)skOI zIUOgxq!T}_6Nt;-bFp%Eq(s8gcbZ$7wU(Uw*evOv$y%(z`CCa~veJSHl2Sf~pDt_P zXmMU|ll*_iZG}sm+93yD{mp8AF0fdr@awhf4~43(J_w6C_lhw(BQ^S}1F|sA==c zPWN5F>gzHFY!x<31(ee#!fL2+gC^!+)Eb7d4cwK+s9~BI55tQ6T?WuT6dMP$|HN$2 z#5h{&=P?Za4wVon62YBi4g)qu#{W!=3k1 zfH*tqB^Q+#H1>mBCC}2>ZqV3b;IP1MflZqg%t(v|46IN>saTNA%fU1Otw}@J1Vm2~ zYm*H$bOh^(ZnQg`$^2u#JL8oZYEm3b?~_xs52F>y;9AV{bxp#)b?;BsY(BcnJLSGu z=A*V>nm6ywXsvZfQ#00g30<{n!b{TvE|Yzi*M;cyr7~QrGE%V1QQI+NrRBywQ;)BD z`SqP!+Of?qgnn$EKKFk~M3c$P(ttHC{Vyh+tL^4DoOb-qWkG`(C1S^(X1kUxp2B$6 zn4!w!TYj72$uMnWrK>*}x4E3_*>bAm(i5@A&%Zsgd&qfUZl$wxeP|5p+Q|aPba=B5 z%zIVw^iuh?9k*u9sNdx?Nqg?zB^?{@u0QN^Y5HvDW9#CjUHFa7MIWF3uOD_`$g4ANtu;_;Lwjcw1pwtJgz6{I^ z4WUDP22tX?psEbcrOP-Yq1x(2lkUu)rw%zyUD{CWP;hBpSV+vuBbOZ6`cE4F@pYXT z(>VXF&YT}&k@x3qRS`WjW9OD~&pVw*xNfaK9hd!f?S?|b*XOMqc-(v^zv-?r<6vIR zWAabJv+3XQIVK;s49N|6X)9zgYR-nlRQ0AB+^mI*%1} z{A8V8yZE^CU8Wb-wr@8&E`Dpj@Ag!WBk$xkf7-*NJ@dk`SRtpzhs}9S#rA66A`{j{ zrg0tV-FN96+q$(a`5rB^{T+6G^!c=Y#_wt@x-2{8;K-L{mag>h!a*@RT(rfmtoXa)}XROmBqxs2v#65 zGs0O+a27M1#R6x6Mg=c{w1YY`Ck>hyj~X;FZeins)@lrlETi=rc!+NB*J~&Ph1e>& zN?5EjGP2|vWD{A*Im2`rFtwS(Y9yjY-#`Tnta@t%r7?MMC(CMq#R9W76PQsrD>rbD zDK*8@1#V7`0ft^2)fzUvhzbqs$SHD#=K6Zk`Y)4CHyP>%b}wJ9IQMhz34XNF8C;>c z1=yY3uA#ErLUvoU=K7%XK`#y6SBJ$^U*+X?-2DDcseFmWr%f@5i{?x{9Pp%Rr}D*J zR&7OVEh^TO#)^xZ6uGxf3A^}uw^>X18I`4dlto zaNqygUqm)vJ@av=Mj2y6<>bjzH|~+xS#YQ7aJp5?irR^HUreViOp|8Zj9gmQW4v$Oi!;lO*gd0*(q?+tEZ9?~sjnsS>cy+*TyIVGS~Znf zMfEu#@ltk6Y zualmB;QU#+*GSLB;^^mP8BGhDnD`Bvn79$4$7a~X_{X4$@dqf`l+mMofn_okDUrk) zpeG5~LJdX(8HBT04f(;-pRk1%CQ%qk;sM8=(=tWhqk7Kke!u%sWU8v%ZDr(g1DYfl z1>4W6pKtk-xJ|9&Z^)0l=ZQ9ZxAEm(tj)c)JIDFCsu2%aOP60MItaY952@I>?T*db-K*=PRzG~2 zw(Q&Mc8jPZIn^UyFXRZmt@{7@ z%JY^YvN>j7+FIA&6+P%aahF)+>&urW-ApekD7g7y9&^Y-o6e82UuXT+JI-IZ-<8Qz N&gf@<_vCOn69A*foZtWe 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 6dce8e8e38478cd7f77e791de3132fe38f88bb7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27800 zcmeZ`n!v!!z`(%5z`*eTKLf)K1_*F~P8 zFqofsfZx^q0G}(n-T|;acD+MjIw&(a17sJ}dN>u}%D~{m$jZ>M_-+tP@Bsr8BR3;A z1A`p{1A`Dmw8M#kfkA+Qfgu3IcYv^&7#P?Xn4lOW&cMJh0TQSl?u-nK3=WK7g&=(( z&0rcV0#(ewaHf!fAqCDuV)!sH%urxpU}#`qIK#xiupxkf!2(GdgBirYfD(5B3=B&! z6d?rkN>VFI7#JAdn?U_#25~n+1p|Wu14D*hQA%P-A_GGSD6xS24oWaq$g05hdgwuv zF?4V;Ffb%AFfcGNK*A46sRIMU2~R)I5Rgy-8v_GF0RsaA2LspukQfXrFfcsQD@x7D zPiA090omICb(;rF1%!5BU;xDmgfmK#5dz)+L%ZK}yNWcw5ePQE-F>?CKnZVmsDPzR zR|%`5^@*Zy)+b82c1SWX9(d`&$iUF;$`h8wm@$EwfuWP*MWY}CL-&W)Z>3y2W-%}v zc&W6whR!&ZV{S(Fopl18aTdqi z92ozL+5|W-{4bU1b>#`@brlIX=4Qfp+)d{L7Xw3DXPm)*(SQI42FqBH627n(4on~? zh`ij*z`&3t5t$_wktLSa>G~-mt<&{KaIfo+fd8dDy{<9=y{-}gX`Q|wj=O$wadBWs z>-7C~-1SeKivz=dQI7xzhAgID*AEcI0$^Jq!ri_i-J(+h92iXAj^*{;xPLM}myLbDFymqyWl_+)Sc9m(YU}0cjWhgbtV(fJnfT~nF?kWOO z`@fXuzo<)q14G!0CPoGZa6rY!MV~w*!O(rW(^sVRWa%BtIF^#@-L_zdu|;HYq;iPRs35p8sVmU`39+3=AOlJP&3DhTs=5Tnr4| zKU)8nYKFb|#m>Oca-dWv_&94rrUSz~7YByptTmYq3_?r{3@VCX@qw2e|Nj3!0|MQk6d%@I%F$fM!f?#Zn6ZRC?7t|;H4Swp3?-cZ z%LM+5Is`Z{#Kj(BVF2kka|W&lVQ+66$axUkRhbwV0*<-yF}#@0&A<@$V&?z<|HEE< z6kxzGquZ5drz9gILzwl!^5PPHT|P!eh7u2t60znNoTYW$t}@0a6*;>U#c&)Hg6qGwn!MRf=izRBO2m|AR zP64n+d9bL2@ySksm%@w;47SXSjEwv(Jq!#Cwv3F7e@hft|Ni^O)ck|7tf|{oW~Vp< z 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 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