diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-01-15 16:12:07 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-01-15 16:12:07 -0800 |
commit | b8d704a517c8a838e42dde314c7f6acdcc981e53 (patch) | |
tree | f6e90b3fb32e2b3b2c2b5a60c48f007dba845457 /host | |
parent | 95cf464c5a9f2bb7d6bf3a231862323dcbf854f8 (diff) | |
download | android_development-b8d704a517c8a838e42dde314c7f6acdcc981e53.tar.gz android_development-b8d704a517c8a838e42dde314c7f6acdcc981e53.tar.bz2 android_development-b8d704a517c8a838e42dde314c7f6acdcc981e53.zip |
auto import from //branches/cupcake/...@126645
Diffstat (limited to 'host')
17 files changed, 673 insertions, 397 deletions
diff --git a/host/windows/prebuilt/usb/AdbWinApi.dll b/host/windows/prebuilt/usb/AdbWinApi.dll Binary files differindex aa8e9568a..1626bce4b 100755 --- a/host/windows/prebuilt/usb/AdbWinApi.dll +++ b/host/windows/prebuilt/usb/AdbWinApi.dll diff --git a/host/windows/prebuilt/usb/driver/android_usb.inf b/host/windows/prebuilt/usb/driver/android_usb.inf index 69a94911b..2837a1bc9 100644 --- a/host/windows/prebuilt/usb/driver/android_usb.inf +++ b/host/windows/prebuilt/usb/driver/android_usb.inf @@ -10,8 +10,9 @@ Signature="$WINDOWS NT$" Class=USB ClassGuid={F72FE0D4-CBCB-407d-8814-9ED673D0DD6B} Provider=%GOOG% -DriverVer=date,1.0.0009.00000 -CatalogFile=androidusb.cat +DriverVer=12/11/2008,1.0.0009.00000 +CatalogFile.NTx86=androidusb86.cat +CatalogFile.NTamd64=androidusba64.cat ; ================= Class section ===================== @@ -28,7 +29,7 @@ DefaultDestDir = 12 ; ================= Device section ===================== [Manufacturer] -%MfgName%=Google,NTx86 +%MfgName%=Google,NTx86,NTamd64 ; For Win2K [Google] @@ -46,6 +47,14 @@ DefaultDestDir = 12 %USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 %USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01 +; For AMD64 and later +[Google.NTamd64] +; For loopback testing +%USB\VID_18D1&PID_DDDD.DeviceDescTest%=androidusb.Dev, USB\VID_18D1&PID_DDDD +; HTC Dream +%USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 +%USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01 + [androidusb.Dev.NT] CopyFiles=androidusb.Files.Ext diff --git a/host/windows/prebuilt/usb/driver/androidusb.sys b/host/windows/prebuilt/usb/driver/androidusb.sys Binary files differindex ebd01b88d..fe6453178 100644 --- a/host/windows/prebuilt/usb/driver/androidusb.sys +++ b/host/windows/prebuilt/usb/driver/androidusb.sys diff --git a/host/windows/prebuilt/usb/driver/androidusb86.cat b/host/windows/prebuilt/usb/driver/androidusb86.cat Binary files differnew file mode 100644 index 000000000..12836dcf7 --- /dev/null +++ b/host/windows/prebuilt/usb/driver/androidusb86.cat diff --git a/host/windows/prebuilt/usb/driver_amd_64/WdfCoInstaller01005.dll b/host/windows/prebuilt/usb/driver_amd_64/WdfCoInstaller01005.dll Binary files differnew file mode 100644 index 000000000..32519fb68 --- /dev/null +++ b/host/windows/prebuilt/usb/driver_amd_64/WdfCoInstaller01005.dll diff --git a/host/windows/prebuilt/usb/driver_amd_64/android_usb.inf b/host/windows/prebuilt/usb/driver_amd_64/android_usb.inf new file mode 100644 index 000000000..2837a1bc9 --- /dev/null +++ b/host/windows/prebuilt/usb/driver_amd_64/android_usb.inf @@ -0,0 +1,122 @@ +;/*++ +; +;Abstract: +; Installation inf for the Android USB Bulk device +; +;--*/ + +[Version] +Signature="$WINDOWS NT$" +Class=USB +ClassGuid={F72FE0D4-CBCB-407d-8814-9ED673D0DD6B} +Provider=%GOOG% +DriverVer=12/11/2008,1.0.0009.00000 +CatalogFile.NTx86=androidusb86.cat +CatalogFile.NTamd64=androidusba64.cat + +; ================= Class section ===================== + +[ClassInstall32] +Addreg=AndroidUsbClassReg + +[AndroidUsbClassReg] +HKR,,,0,%ClassName% +HKR,,Icon,,-5 + +[DestinationDirs] +DefaultDestDir = 12 + +; ================= Device section ===================== + +[Manufacturer] +%MfgName%=Google,NTx86,NTamd64 + +; For Win2K +[Google] +; For loopback testing +%USB\VID_18D1&PID_DDDD.DeviceDescTest%=androidusb.Dev, USB\VID_18D1&PID_DDDD +; HTC Dream +%USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 +%USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01 + +; For XP and later +[Google.NTx86] +; For loopback testing +%USB\VID_18D1&PID_DDDD.DeviceDescTest%=androidusb.Dev, USB\VID_18D1&PID_DDDD +; HTC Dream +%USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 +%USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01 + +; For AMD64 and later +[Google.NTamd64] +; For loopback testing +%USB\VID_18D1&PID_DDDD.DeviceDescTest%=androidusb.Dev, USB\VID_18D1&PID_DDDD +; HTC Dream +%USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 +%USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01 + +[androidusb.Dev.NT] +CopyFiles=androidusb.Files.Ext + +[androidusb.Dev.NT.Services] +Addservice = androidusb, 0x00000002, androidusb.AddService + +[androidusb.AddService] +DisplayName = %androidusb.SvcDesc% +ServiceType = 1 ; SERVICE_KERNEL_DRIVER +StartType = 3 ; SERVICE_DEMAND_START +ErrorControl = 1 ; SERVICE_ERROR_NORMAL +ServiceBinary = %10%\System32\Drivers\androidusb.sys +AddReg = androidusb.AddReg +LoadOrderGroup = Base + +[androidusb.AddReg] +HKR,"Parameters","MaximumTransferSize",0x10001,4096 +HKR,"Parameters","DebugLevel",0x10001,2 +HKR, Parameters\Wdf, VerboseOn, 0x00010001, 1 +HKR, Parameters\Wdf, VerifierOn, 0x00010001, 1 +HKR, Parameters\Wdf, DbgBreakOnError, 0x00010001, 1 + +[androidusb.Files.Ext] +androidusb.sys + +[SourceDisksNames] +1=%Disk_Description%,,, + +[SourceDisksFiles] +androidusb.sys = 1 + +;-------------- WDF Coinstaller installation +[DestinationDirs] +CoInstaller_CopyFiles = 11 + +[androidusb.Dev.NT.CoInstallers] +AddReg=CoInstaller_AddReg +CopyFiles=CoInstaller_CopyFiles + +[CoInstaller_CopyFiles] +wdfcoinstaller01005.dll + +[SourceDisksFiles] +wdfcoinstaller01005.dll=1 ; make sure the number matches with SourceDisksNames + +[CoInstaller_AddReg] +HKR,,CoInstallers32,0x00010000, "wdfcoinstaller01005.dll,WdfCoInstaller" + +[androidusb.Dev.NT.Wdf] +KmdfService = androidusb, androidusb_wdfsect + +[androidusb_wdfsect] +KmdfLibraryVersion = 1.5 + +;---------------------------------------------------------------; + +[Strings] +GOOG = "Google, Inc" +MfgName = "Google, Inc" +Disk_Description= "ADB Interface Installation Disk" +androidusb.SvcDesc = "ADB Interface Driver" +ClassName = "ADB Interface" +USB\VID_18D1&PID_DDDD.DeviceDescTest="ADB Testing Interface" +USB\VID_0BB4&PID_0C01.DeviceDescRelease="HTC Dream" +USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease="HTC Dream Composite ADB Interface" diff --git a/host/windows/prebuilt/usb/driver_amd_64/androidusb.sys b/host/windows/prebuilt/usb/driver_amd_64/androidusb.sys Binary files differnew file mode 100644 index 000000000..70ce24fd1 --- /dev/null +++ b/host/windows/prebuilt/usb/driver_amd_64/androidusb.sys diff --git a/host/windows/prebuilt/usb/driver_amd_64/androidusba64.cat b/host/windows/prebuilt/usb/driver_amd_64/androidusba64.cat Binary files differnew file mode 100644 index 000000000..9d5db5d1f --- /dev/null +++ b/host/windows/prebuilt/usb/driver_amd_64/androidusba64.cat diff --git a/host/windows/usb/api/AdbWinApi.vcproj b/host/windows/usb/api/AdbWinApi.vcproj index f9d15e5f6..c8dfe5509 100644 --- a/host/windows/usb/api/AdbWinApi.vcproj +++ b/host/windows/usb/api/AdbWinApi.vcproj @@ -1,290 +1,290 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="AdbWinApi"
- ProjectGUID="{C0A471E9-6892-4270-96DE-DB5F8D526FB1}"
- Keyword="AtlProj">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="2"
- UseOfATL="1"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="1">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="c:\winddk\6000\inc\api;..\common"
- PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;ADBWIN_EXPORTS"
- MinimalRebuild="FALSE"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- BufferSecurityCheck="TRUE"
- TreatWChar_tAsBuiltInType="TRUE"
- UsePrecompiledHeader="3"
- ProgramDataBaseFileName="..\build\$(OutDir)\i386\$(TargetName).pdb"
- WarningLevel="4"
- WarnAsError="TRUE"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4100;4200;4702"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- IgnoreImportLibrary="TRUE"
- AdditionalDependencies="c:\winddk\6000\lib\wxp\i386\usbd.lib setupapi.lib"
- OutputFile="..\build\$(OutDir)\i386/AdbWinApi.dll"
- LinkIncremental="2"
- AdditionalLibraryDirectories=""
- ModuleDefinitionFile=".\AdbWinApi.def"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile="..\build\$(OutDir)\i386/$(ProjectName).pdb"
- SubSystem="2"
- ImportLibrary="..\build\$(OutDir)\i386/AdbWinApi.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="FALSE"
- TargetEnvironment="1"
- GenerateStublessProxies="TRUE"
- TypeLibraryName="$(IntDir)/AdbWinApi.tlb"
- HeaderFileName="AdbWinApi.h"
- DLLDataFileName=""
- InterfaceIdentifierFileName="AdbWinApi_i.c"
- ProxyFileName="AdbWinApi_p.c"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"
- AdditionalIncludeDirectories="$(IntDir)"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="2"
- UseOfATL="1"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="1">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="4"
- InlineFunctionExpansion="2"
- AdditionalIncludeDirectories="c:\winddk\6000\inc\api;..\common"
- PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;ADBWIN_EXPORTS"
- MinimalRebuild="FALSE"
- RuntimeLibrary="0"
- BufferSecurityCheck="TRUE"
- TreatWChar_tAsBuiltInType="TRUE"
- UsePrecompiledHeader="3"
- ProgramDataBaseFileName="..\build\$(OutDir)\i386\$(TargetName).pdb"
- WarningLevel="4"
- WarnAsError="TRUE"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="3"
- DisableSpecificWarnings="4100;4200;4702"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- IgnoreImportLibrary="TRUE"
- AdditionalDependencies="c:\winddk\6000\lib\wxp\i386\usbd.lib setupapi.lib"
- OutputFile="..\build\$(OutDir)\i386/AdbWinApi.dll"
- LinkIncremental="1"
- AdditionalLibraryDirectories=""
- ModuleDefinitionFile=".\AdbWinApi.def"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile="..\build\$(OutDir)\i386/$(ProjectName).pdb"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- ImportLibrary="..\build\$(OutDir)\i386/AdbWinApi.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="FALSE"
- TargetEnvironment="1"
- GenerateStublessProxies="TRUE"
- TypeLibraryName="$(IntDir)/AdbWinApi.tlb"
- HeaderFileName="AdbWinApi.h"
- DLLDataFileName=""
- InterfaceIdentifierFileName="AdbWinApi_i.c"
- ProxyFileName="AdbWinApi_p.c"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"
- AdditionalIncludeDirectories="$(IntDir)"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
- <File
- RelativePath=".\adb_api.cpp">
- </File>
- <File
- RelativePath=".\adb_endpoint_object.cpp">
- </File>
- <File
- RelativePath=".\adb_helper_routines.cpp">
- </File>
- <File
- RelativePath=".\adb_interface.cpp">
- </File>
- <File
- RelativePath=".\adb_interface_enum.cpp">
- </File>
- <File
- RelativePath=".\adb_io_completion.cpp">
- </File>
- <File
- RelativePath=".\adb_io_object.cpp">
- </File>
- <File
- RelativePath=".\adb_object_handle.cpp">
- </File>
- <File
- RelativePath=".\AdbWinApi.cpp">
- </File>
- <File
- RelativePath=".\AdbWinApi.def">
- </File>
- <File
- RelativePath=".\stdafx.cpp">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"/>
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
- <File
- RelativePath=".\adb_api.h">
- </File>
- <File
- RelativePath=".\adb_api_private_defines.h">
- </File>
- <File
- RelativePath=".\adb_endpoint_object.h">
- </File>
- <File
- RelativePath=".\adb_helper_routines.h">
- </File>
- <File
- RelativePath=".\adb_interface.h">
- </File>
- <File
- RelativePath=".\adb_interface_enum.h">
- </File>
- <File
- RelativePath=".\adb_io_completion.h">
- </File>
- <File
- RelativePath=".\adb_io_object.h">
- </File>
- <File
- RelativePath=".\adb_object_handle.h">
- </File>
- <File
- RelativePath=".\Resource.h">
- </File>
- <File
- RelativePath=".\stdafx.h">
- </File>
- <Filter
- Name="common"
- Filter="">
- <File
- RelativePath=".\adb_api_extra.h">
- </File>
- <File
- RelativePath="..\common\android_usb_common_defines.h">
- </File>
- </Filter>
- <Filter
- Name="USB"
- Filter="">
- <File
- RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb.h">
- </File>
- <File
- RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb100.h">
- </File>
- <File
- RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb200.h">
- </File>
- <File
- RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usbdi.h">
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
- <File
- RelativePath=".\AdbWinApi.rc">
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="AdbWinApi" + ProjectGUID="{C0A471E9-6892-4270-96DE-DB5F8D526FB1}" + Keyword="AtlProj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="2" + UseOfATL="1" + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="1"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="c:\winddk\6000\inc\api;..\common" + PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;ADBWIN_EXPORTS" + MinimalRebuild="FALSE" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + BufferSecurityCheck="TRUE" + TreatWChar_tAsBuiltInType="TRUE" + UsePrecompiledHeader="3" + ProgramDataBaseFileName="..\build\$(OutDir)\i386\$(TargetName).pdb" + WarningLevel="4" + WarnAsError="TRUE" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4" + DisableSpecificWarnings="4100;4200;4702"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="TRUE" + AdditionalDependencies="c:\winddk\6000\lib\wxp\i386\usbd.lib setupapi.lib" + OutputFile="..\build\$(OutDir)\i386/AdbWinApi.dll" + LinkIncremental="2" + AdditionalLibraryDirectories="" + ModuleDefinitionFile=".\AdbWinApi.def" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="..\build\$(OutDir)\i386/$(ProjectName).pdb" + SubSystem="2" + ImportLibrary="..\build\$(OutDir)\i386/AdbWinApi.lib" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="FALSE" + TargetEnvironment="1" + GenerateStublessProxies="TRUE" + TypeLibraryName="$(IntDir)/AdbWinApi.tlb" + HeaderFileName="AdbWinApi.h" + DLLDataFileName="" + InterfaceIdentifierFileName="AdbWinApi_i.c" + ProxyFileName="AdbWinApi_p.c"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + AdditionalIncludeDirectories="$(IntDir)"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="2" + UseOfATL="1" + ATLMinimizesCRunTimeLibraryUsage="FALSE" + CharacterSet="1"> + <Tool + Name="VCCLCompilerTool" + Optimization="4" + InlineFunctionExpansion="2" + AdditionalIncludeDirectories="c:\winddk\6000\inc\api;..\common" + PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;ADBWIN_EXPORTS" + MinimalRebuild="FALSE" + RuntimeLibrary="0" + BufferSecurityCheck="TRUE" + TreatWChar_tAsBuiltInType="TRUE" + UsePrecompiledHeader="3" + ProgramDataBaseFileName="..\build\$(OutDir)\i386\$(TargetName).pdb" + WarningLevel="4" + WarnAsError="TRUE" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3" + DisableSpecificWarnings="4100;4200;4702"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="TRUE" + AdditionalDependencies="c:\winddk\6000\lib\wxp\i386\usbd.lib setupapi.lib" + OutputFile="..\build\$(OutDir)\i386/AdbWinApi.dll" + LinkIncremental="1" + AdditionalLibraryDirectories="" + ModuleDefinitionFile=".\AdbWinApi.def" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="..\build\$(OutDir)\i386/$(ProjectName).pdb" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + ImportLibrary="..\build\$(OutDir)\i386/AdbWinApi.lib" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="FALSE" + TargetEnvironment="1" + GenerateStublessProxies="TRUE" + TypeLibraryName="$(IntDir)/AdbWinApi.tlb" + HeaderFileName="AdbWinApi.h" + DLLDataFileName="" + InterfaceIdentifierFileName="AdbWinApi_i.c" + ProxyFileName="AdbWinApi_p.c"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + AdditionalIncludeDirectories="$(IntDir)"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\adb_api.cpp"> + </File> + <File + RelativePath=".\adb_endpoint_object.cpp"> + </File> + <File + RelativePath=".\adb_helper_routines.cpp"> + </File> + <File + RelativePath=".\adb_interface.cpp"> + </File> + <File + RelativePath=".\adb_interface_enum.cpp"> + </File> + <File + RelativePath=".\adb_io_completion.cpp"> + </File> + <File + RelativePath=".\adb_io_object.cpp"> + </File> + <File + RelativePath=".\adb_object_handle.cpp"> + </File> + <File + RelativePath=".\AdbWinApi.cpp"> + </File> + <File + RelativePath=".\AdbWinApi.def"> + </File> + <File + RelativePath=".\stdafx.cpp"> + <FileConfiguration + Name="Debug|Win32"> + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1"/> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1"/> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\adb_api.h"> + </File> + <File + RelativePath=".\adb_api_private_defines.h"> + </File> + <File + RelativePath=".\adb_endpoint_object.h"> + </File> + <File + RelativePath=".\adb_helper_routines.h"> + </File> + <File + RelativePath=".\adb_interface.h"> + </File> + <File + RelativePath=".\adb_interface_enum.h"> + </File> + <File + RelativePath=".\adb_io_completion.h"> + </File> + <File + RelativePath=".\adb_io_object.h"> + </File> + <File + RelativePath=".\adb_object_handle.h"> + </File> + <File + RelativePath=".\Resource.h"> + </File> + <File + RelativePath=".\stdafx.h"> + </File> + <Filter + Name="common" + Filter=""> + <File + RelativePath=".\adb_api_extra.h"> + </File> + <File + RelativePath="..\common\android_usb_common_defines.h"> + </File> + </Filter> + <Filter + Name="USB" + Filter=""> + <File + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb.h"> + </File> + <File + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb100.h"> + </File> + <File + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb200.h"> + </File> + <File + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usbdi.h"> + </File> + </Filter> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + <File + RelativePath=".\AdbWinApi.rc"> + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/host/windows/usb/api/adb_api_extra.h b/host/windows/usb/api/adb_api_extra.h index cad480dcd..e644b015f 100644 --- a/host/windows/usb/api/adb_api_extra.h +++ b/host/windows/usb/api/adb_api_extra.h @@ -67,19 +67,22 @@ typedef struct _AdbEndpointInformation { {0xf72fe0d4, 0xcbcb, 0x407d, {0x88, 0x14, 0x9e, 0xd6, 0x73, 0xd0, 0xdd, 0x6b}}; /// Defines vendor ID for the device -#define DEVICE_VENDOR_ID 0x18D1 +#define DEVICE_VENDOR_ID 0x0BB4 /// Defines product ID for the device with single interface. -#define DEVICE_SINGLE_PRODUCT_ID 0xD00D +#define DEVICE_SINGLE_PRODUCT_ID 0x0C01 /// Defines product ID for the composite device. -#define DEVICE_COMPOSITE_PRODUCT_ID 0xDEED +#define DEVICE_COMPOSITE_PRODUCT_ID 0x0C02 + +/// Defines interface ID for the device. +#define DEVICE_INTERFACE_ID 0x01 + +/// Defines vendor ID for the device +#define DEVICE_EMULATOR_VENDOR_ID 0x18D1 /// Defines product ID for a SoftUSB device simulator that is used to test /// the driver in isolation from hardware. #define DEVICE_EMULATOR_PROD_ID 0xDDDD -/// Defines interface ID for the device. -#define DEVICE_INTERFACE_ID 0x01 - #endif // ANDROID_USB_API_ADB_API_EXTRA_H__ diff --git a/host/windows/usb/api/adb_io_object.cpp b/host/windows/usb/api/adb_io_object.cpp index ea4bc8f72..732dc22b6 100644 --- a/host/windows/usb/api/adb_io_object.cpp +++ b/host/windows/usb/api/adb_io_object.cpp @@ -191,7 +191,7 @@ ADBAPIHANDLE AdbIOObject::CommonAsyncReadWrite(bool is_read, AdbBulkTransfer transfer_param; transfer_param.time_out = time_out; transfer_param.transfer_size = is_read ? 0 : bytes_to_transfer; - transfer_param.write_buffer = is_read ? NULL : buffer; + transfer_param.SetWriteBuffer(is_read ? NULL : buffer); res = DeviceIoControl(usb_handle(), is_read ? ADB_IOCTL_BULK_READ : ADB_IOCTL_BULK_WRITE, @@ -254,7 +254,7 @@ bool AdbIOObject::CommonSyncReadWrite(bool is_read, AdbBulkTransfer transfer_param; transfer_param.time_out = time_out; transfer_param.transfer_size = is_read ? 0 : bytes_to_transfer; - transfer_param.write_buffer = is_read ? NULL : buffer; + transfer_param.SetWriteBuffer(is_read ? NULL : buffer); ULONG tmp; ret = DeviceIoControl(usb_handle(), diff --git a/host/windows/usb/common/android_usb_common_defines.h b/host/windows/usb/common/android_usb_common_defines.h index abdeba782..723f4a356 100644 --- a/host/windows/usb/common/android_usb_common_defines.h +++ b/host/windows/usb/common/android_usb_common_defines.h @@ -60,35 +60,35 @@ CTL_CODE(FILE_DEVICE_UNKNOWN, \ ADB_CTL_GET_USB_DEVICE_DESCRIPTOR, \ METHOD_BUFFERED, \ - FILE_ANY_ACCESS) + FILE_READ_ACCESS) /// IOCTL that gets USB_CONFIGURATION_DESCRIPTOR #define ADB_IOCTL_GET_USB_CONFIGURATION_DESCRIPTOR \ CTL_CODE(FILE_DEVICE_UNKNOWN, \ ADB_CTL_GET_USB_CONFIGURATION_DESCRIPTOR, \ METHOD_BUFFERED, \ - FILE_ANY_ACCESS) + FILE_READ_ACCESS) /// IOCTL that gets USB_INTERFACE_DESCRIPTOR #define ADB_IOCTL_GET_USB_INTERFACE_DESCRIPTOR \ CTL_CODE(FILE_DEVICE_UNKNOWN, \ ADB_CTL_GET_USB_INTERFACE_DESCRIPTOR, \ METHOD_BUFFERED, \ - FILE_ANY_ACCESS) + FILE_READ_ACCESS) /// IOCTL that gets endpoint information #define ADB_IOCTL_GET_ENDPOINT_INFORMATION \ CTL_CODE(FILE_DEVICE_UNKNOWN, \ ADB_CTL_GET_ENDPOINT_INFORMATION, \ METHOD_BUFFERED, \ - FILE_ANY_ACCESS) + FILE_READ_ACCESS) /// Bulk read IOCTL #define ADB_IOCTL_BULK_READ \ CTL_CODE(FILE_DEVICE_UNKNOWN, \ ADB_CTL_BULK_READ, \ METHOD_OUT_DIRECT, \ - FILE_ANY_ACCESS) + FILE_READ_ACCESS) // For bulk write IOCTL we send request data in the form of AdbBulkTransfer // structure and output buffer is just ULONG that receives number of bytes @@ -99,14 +99,14 @@ CTL_CODE(FILE_DEVICE_UNKNOWN, \ ADB_CTL_BULK_WRITE, \ METHOD_BUFFERED, \ - FILE_ANY_ACCESS) + FILE_WRITE_ACCESS) /// IOCTL that gets device serial number #define ADB_IOCTL_GET_SERIAL_NUMBER \ CTL_CODE(FILE_DEVICE_UNKNOWN, \ ADB_CTL_GET_SERIAL_NUMBER, \ METHOD_BUFFERED, \ - FILE_ANY_ACCESS) + FILE_READ_ACCESS) ///@} @@ -131,9 +131,49 @@ struct AdbBulkTransfer { /// size is defined by the output buffer size. ULONG transfer_size; + /// Initializes statically allocated structure + __forceinline AdbBulkTransfer() { + time_out = 0; + transfer_size = 0; + for_x64 = 0; + } + + /// Provides access to protected write_buffer field + void* GetWriteBuffer() { + return write_buffer; + } + + /// Provides access to protected write_buffer field + const void* GetWriteBuffer() const { + return write_buffer; + } + + /// Sets write_buffer field. + void SetWriteBuffer(void* buffer) { + // For 32-bit we must zero out high 32 bit of the address, so 64-bit + // driver will see valid address when accessing 64-bit write_buffer. + for_x64 = 0; + write_buffer = buffer; + } + +protected: /// Pointer to the actual buffer for ADB_CTL_BULK_WRITE request. This field - /// is not used in ADB_CTL_BULK_READ request. - void* write_buffer; + /// is not used in ADB_CTL_BULK_READ request. Note that in order to support + /// compatibility between 32-bit and 64-bit versions of both, driver and + /// application we must sizeof this field to the max pointer sizeof (which + /// is 64 bit in our case). The idea is that if IOCTL was issued by a 64-bit + /// process to a 64-bit driver, write_buffer will be valid 64-bit pointer to + /// the write buffer. Same is true for 32-bit app talking to 32-bit driver. + /// If, however, a 32-bit app is talking to 64-bit driver, then write_buffer + /// initialized by 32-bit app will contain 32-bit address, which will be + /// correctly picked up ("extended") by 64-bit driver. Since when setting + /// this field by a 32-bit app requires some extra work (see SetWriteBuffer) + /// we hide this field, making it accessible only throug the accessor + /// methods (Get/SetWriteBuffer). + union { + void* write_buffer; + __int64 for_x64; + }; }; #endif // ANDROID_USB_COMMON_DEFINES_H__ diff --git a/host/windows/usb/driver/android_usb.inf b/host/windows/usb/driver/android_usb.inf index 69a94911b..2837a1bc9 100644 --- a/host/windows/usb/driver/android_usb.inf +++ b/host/windows/usb/driver/android_usb.inf @@ -10,8 +10,9 @@ Signature="$WINDOWS NT$" Class=USB ClassGuid={F72FE0D4-CBCB-407d-8814-9ED673D0DD6B} Provider=%GOOG% -DriverVer=date,1.0.0009.00000 -CatalogFile=androidusb.cat +DriverVer=12/11/2008,1.0.0009.00000 +CatalogFile.NTx86=androidusb86.cat +CatalogFile.NTamd64=androidusba64.cat ; ================= Class section ===================== @@ -28,7 +29,7 @@ DefaultDestDir = 12 ; ================= Device section ===================== [Manufacturer] -%MfgName%=Google,NTx86 +%MfgName%=Google,NTx86,NTamd64 ; For Win2K [Google] @@ -46,6 +47,14 @@ DefaultDestDir = 12 %USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 %USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01 +; For AMD64 and later +[Google.NTamd64] +; For loopback testing +%USB\VID_18D1&PID_DDDD.DeviceDescTest%=androidusb.Dev, USB\VID_18D1&PID_DDDD +; HTC Dream +%USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 +%USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01 + [androidusb.Dev.NT] CopyFiles=androidusb.Files.Ext diff --git a/host/windows/usb/driver/android_usb.sln b/host/windows/usb/driver/android_usb.sln index 1c5193e38..ac4cbe901 100644 --- a/host/windows/usb/driver/android_usb.sln +++ b/host/windows/usb/driver/android_usb.sln @@ -6,13 +6,19 @@ EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug + Debug-64 = Debug-64 Release = Release + Release-64 = Release-64 EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {D980BE56-A7AB-4E05-919B-677FB7716307}.Debug.ActiveCfg = Debug|Win32 {D980BE56-A7AB-4E05-919B-677FB7716307}.Debug.Build.0 = Debug|Win32 + {D980BE56-A7AB-4E05-919B-677FB7716307}.Debug-64.ActiveCfg = Debug-64|Win32 + {D980BE56-A7AB-4E05-919B-677FB7716307}.Debug-64.Build.0 = Debug-64|Win32 {D980BE56-A7AB-4E05-919B-677FB7716307}.Release.ActiveCfg = Release|Win32 {D980BE56-A7AB-4E05-919B-677FB7716307}.Release.Build.0 = Release|Win32 + {D980BE56-A7AB-4E05-919B-677FB7716307}.Release-64.ActiveCfg = Release-64|Win32 + {D980BE56-A7AB-4E05-919B-677FB7716307}.Release-64.Build.0 = Release-64|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection diff --git a/host/windows/usb/driver/android_usb.vcproj b/host/windows/usb/driver/android_usb.vcproj index 5c21aa463..5402b0c2b 100644 --- a/host/windows/usb/driver/android_usb.vcproj +++ b/host/windows/usb/driver/android_usb.vcproj @@ -18,33 +18,36 @@ ConfigurationType="0"> <Tool Name="VCNMakeTool" - BuildCommandLine="call c:\winddk\6000\bin\setenv.bat c:\winddk\6000\ chk WXP + BuildCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ chk WXP set PROJECTDIR=$(ProjectDir) set DRIVE=%PROJECTDIR:~0,2% %DRIVE% cd %PROJECTDIR% build -beEIFZ cd %PROJECTDIR% -copy android_usb.inf ..\build\debug\i386\android_usb.inf" - ReBuildCommandLine="call c:\winddk\6000\bin\setenv.bat c:\winddk\6000\ chk WXP +copy /Y android_usb.inf ..\build\debug\i386\android_usb.inf +copy /Y C:\WINDDK\6000\redist\wdf\x86\WdfCoInstaller01005.dll ..\build\debug\i386 +set PATH=%PATH%;C:\WINDDK\6001.18001\bin\SelfSign +Inf2Cat /driver:..\build\debug\i386 /os:XP_X86,Server2003_X86,Vista_X86 +" + ReBuildCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ chk WXP set PROJECTDIR=$(ProjectDir) set DRIVE=%PROJECTDIR:~0,2% %DRIVE% cd %PROJECTDIR% build -cbeEIFZ cd %PROJECTDIR% -copy android_usb.inf ..\build\debug\i386\android_usb.inf -cd ..\build\debug\i386 -set Path=%Path%;$(VCInstallDir)bin;$(VSInstallDir)Common7\IDE -dumpbin /ALL /OUT:androidusb.txt androidusb.sys +copy /Y android_usb.inf ..\build\debug\i386\android_usb.inf +copy /Y C:\WINDDK\6000\redist\wdf\x86\WdfCoInstaller01005.dll ..\build\debug\i386 +set PATH=%PATH%;C:\WINDDK\6001.18001\bin\SelfSign +Inf2Cat /driver:..\build\debug\i386 /os:XP_X86,Server2003_X86,Vista_X86 " - CleanCommandLine="call c:\winddk\6000\bin\setenv.bat c:\winddk\6000\ chk WXP + CleanCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ chk WXP set PROJECTDIR=$(ProjectDir) set DRIVE=%PROJECTDIR:~0,2% %DRIVE% cd %PROJECTDIR% -build -c0 -"/> +build -c0"/> </Configuration> <Configuration Name="Release|Win32" @@ -53,29 +56,113 @@ build -c0 ConfigurationType="0"> <Tool Name="VCNMakeTool" - BuildCommandLine="call c:\winddk\6000\bin\setenv.bat c:\winddk\6000\ free WXP + BuildCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ fre WXP +set PROJECTDIR=$(ProjectDir) +set DRIVE=%PROJECTDIR:~0,2% +%DRIVE% +cd %PROJECTDIR% +build -beEIFZ +cd %PROJECTDIR% +copy /Y android_usb.inf ..\build\release\i386\android_usb.inf +copy /Y C:\WINDDK\6000\redist\wdf\x86\WdfCoInstaller01005.dll ..\build\release\i386 +set PATH=%PATH%;C:\WINDDK\6001.18001\bin\SelfSign +Inf2Cat /driver:..\build\release\i386 /os:XP_X86,Server2003_X86,Vista_X86 +" + ReBuildCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ fre WXP +set PROJECTDIR=$(ProjectDir) +set DRIVE=%PROJECTDIR:~0,2% +%DRIVE% +cd %PROJECTDIR% +build -cbeEIFZ +cd %PROJECTDIR% +copy /Y android_usb.inf ..\build\release\i386\android_usb.inf +copy /Y C:\WINDDK\6000\redist\wdf\x86\WdfCoInstaller01005.dll ..\build\release\i386 +set PATH=%PATH%;C:\WINDDK\6001.18001\bin\SelfSign +Inf2Cat /driver:..\build\release\i386 /os:XP_X86,Server2003_X86,Vista_X86 +" + CleanCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ fre WXP +set PROJECTDIR=$(ProjectDir) +set DRIVE=%PROJECTDIR:~0,2% +%DRIVE% +cd %PROJECTDIR% +build -c0"/> + </Configuration> + <Configuration + Name="Debug-64|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="0"> + <Tool + Name="VCNMakeTool" + BuildCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ chk AMD64 WNET +set PROJECTDIR=$(ProjectDir) +set DRIVE=%PROJECTDIR:~0,2% +%DRIVE% +cd %PROJECTDIR% +build -beEIFZ +cd %PROJECTDIR% +copy android_usb.inf ..\build\debug\amd64\android_usb.inf +copy C:\WINDDK\6000\redist\wdf\amd64\WdfCoInstaller01005.dll ..\build\debug\amd64 +set PATH=%PATH%;C:\WINDDK\6001.18001\bin\SelfSign +Inf2Cat /driver:..\build\debug\amd64 /os:XP_X64,Server2003_X64,Vista_X64 +" + ReBuildCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ chk AMD64 WNET +set PROJECTDIR=$(ProjectDir) +set DRIVE=%PROJECTDIR:~0,2% +%DRIVE% +cd %PROJECTDIR% +build -cbeEIFZ +cd %PROJECTDIR% +copy android_usb.inf ..\build\debug\amd64\android_usb.inf +copy C:\WINDDK\6000\redist\wdf\amd64\WdfCoInstaller01005.dll ..\build\debug\amd64 +set PATH=%PATH%;C:\WINDDK\6001.18001\bin\SelfSign +SignTool sign /v /s AndroidTestCertStore /n Android /t http://timestamp.verisign.com/scripts/timestamp.dll ..\build\debug\amd64\androidusb.sys +Inf2Cat /driver:..\build\debug\amd64 /os:XP_X64,Server2003_X64,Vista_X64 +SignTool sign /v /s AndroidTestCertStore /n Android /t http://timestamp.verisign.com/scripts/timestamp.dll ..\build\debug\amd64\androidusba64.cat" + CleanCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ chk AMD64 WNET +set PROJECTDIR=$(ProjectDir) +set DRIVE=%PROJECTDIR:~0,2% +%DRIVE% +cd %PROJECTDIR% +build -c0"/> + </Configuration> + <Configuration + Name="Release-64|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="0"> + <Tool + Name="VCNMakeTool" + BuildCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ fre AMD64 WNET set PROJECTDIR=$(ProjectDir) set DRIVE=%PROJECTDIR:~0,2% %DRIVE% cd %PROJECTDIR% build -beEIFZ cd %PROJECTDIR% -copy android_usb.inf ..\build\release\i386\android_usb.inf" - ReBuildCommandLine="call c:\winddk\6000\bin\setenv.bat c:\winddk\6000\ free WXP +copy android_usb.inf ..\build\release\amd64\android_usb.inf +copy C:\WINDDK\6000\redist\wdf\amd64\WdfCoInstaller01005.dll ..\build\release\amd64 +set PATH=%PATH%;C:\WINDDK\6001.18001\bin\SelfSign +Inf2Cat /driver:..\build\release\amd64 /os:XP_X64,Server2003_X64,Vista_X64 +" + ReBuildCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ fre AMD64 WNET set PROJECTDIR=$(ProjectDir) set DRIVE=%PROJECTDIR:~0,2% %DRIVE% cd %PROJECTDIR% build -cbeEIFZ cd %PROJECTDIR% -copy android_usb.inf ..\build\release\i386\android_usb.inf" - CleanCommandLine="call c:\winddk\6000\bin\setenv.bat c:\winddk\6000\ free WXP +copy android_usb.inf ..\build\release\amd64\android_usb.inf +copy C:\WINDDK\6000\redist\wdf\amd64\WdfCoInstaller01005.dll ..\build\release\amd64 +set PATH=%PATH%;C:\WINDDK\6001.18001\bin\SelfSign +Inf2Cat /driver:..\build\release\amd64 /os:XP_X64,Server2003_X64,Vista_X64 +" + CleanCommandLine="call C:\WinDDK\6000\bin\setenv.bat C:\WinDDK\6000\ fre AMD64 WNET set PROJECTDIR=$(ProjectDir) set DRIVE=%PROJECTDIR:~0,2% %DRIVE% cd %PROJECTDIR% -build -c0 -"/> +build -c0"/> </Configuration> </Configurations> <References> @@ -749,10 +836,10 @@ build -c0 RelativePath="..\..\..\..\Winddk\6000\inc\api\usb.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb100.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\api\usb100.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\api\usb100.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb100.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\api\usb200.h"> @@ -794,10 +881,10 @@ build -c0 RelativePath="..\..\..\..\Winddk\6000\inc\ddk\videoagp.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf10.h"> @@ -806,252 +893,252 @@ build -c0 RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf10.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf11.h"> - </File> - <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf11.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfassert.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdf11.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfassert.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfbugcodes.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfassert.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfbugcodes.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfbugcodes.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfchildlist.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfbugcodes.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfchildlist.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcollection.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfchildlist.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcollection.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcommonbuffer.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcollection.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcommonbuffer.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcontrol.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcommonbuffer.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcontrol.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcore.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcontrol.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcore.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcore.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdevice.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfcore.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdevice.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdmaenabler.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdevice.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdmaenabler.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdmatransaction.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdmaenabler.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdmatransaction.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdpc.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdmatransaction.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdpc.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdriver.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdpc.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdriver.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdriver.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffdo.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfdriver.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffdo.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffileobject.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffdo.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffileobject.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffuncenum.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffileobject.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffuncenum.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffuncenum.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfglobals.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdffuncenum.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfglobals.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfinstaller.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfglobals.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfinstaller.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfinterrupt.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfinstaller.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfinterrupt.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfinterrupt.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfio.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfinterrupt.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfio.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfiotarget.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfio.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfiotarget.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfmemory.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfiotarget.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfmemory.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfminiport.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfmemory.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfminiport.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfobject.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfminiport.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfobject.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfobject.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfpdo.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfobject.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfpdo.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfpool.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfpdo.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfpool.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfqueryinterface.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfpool.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfqueryinterface.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfregistry.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfqueryinterface.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfregistry.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfrequest.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfregistry.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfrequest.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfrequest.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfresource.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfrequest.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfresource.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfstatus.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfresource.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfstatus.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfstring.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfstatus.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfstring.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfsync.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfstring.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfsync.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftimer.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfsync.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftimer.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftimer.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftraceenums.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftimer.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftraceenums.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftypes.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftraceenums.h"> </File> <File RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftypes.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfusb.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdftypes.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfusb.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfverifier.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfusb.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfverifier.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfwmi.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfverifier.h"> </File> <File - RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfwmi.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfwmi.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfworkitem.h"> + RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfwmi.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfworkitem.h"> </File> <File - RelativePath="..\..\..\..\Winddk\6000\inc\ddk\wdm.h"> + RelativePath="..\..\..\..\Winddk\6000\inc\wdf\kmdf\10\wdfworkitem.h"> </File> <File RelativePath="..\..\..\..\..\..\..\..\Winddk\6000\inc\ddk\wdm.h"> </File> <File + RelativePath="..\..\..\..\Winddk\6000\inc\ddk\wdm.h"> + </File> + <File RelativePath="..\..\..\..\Winddk\6000\inc\ddk\wdmguid.h"> </File> <File diff --git a/host/windows/usb/driver/android_usb_device_file_object.cpp b/host/windows/usb/driver/android_usb_device_file_object.cpp index 0655aed93..e134ebb4c 100644 --- a/host/windows/usb/driver/android_usb_device_file_object.cpp +++ b/host/windows/usb/driver/android_usb_device_file_object.cpp @@ -47,26 +47,26 @@ void AndroidUsbDeviceFileObject::OnEvtIoDeviceControl(WDFREQUEST request, ULONG ioctl_code) { ASSERT_IRQL_LOW_OR_DISPATCH(); - switch (GetCtlCode(ioctl_code)) { - case ADB_CTL_GET_USB_DEVICE_DESCRIPTOR: + switch (ioctl_code) { + case ADB_IOCTL_GET_USB_DEVICE_DESCRIPTOR: device_object()->OnGetUsbDeviceDescriptorCtl(request, output_buf_len); break; - case ADB_CTL_GET_USB_CONFIGURATION_DESCRIPTOR: + case ADB_IOCTL_GET_USB_CONFIGURATION_DESCRIPTOR: device_object()->OnGetUsbConfigDescriptorCtl(request, output_buf_len); break; - case ADB_CTL_GET_USB_INTERFACE_DESCRIPTOR: + case ADB_IOCTL_GET_USB_INTERFACE_DESCRIPTOR: device_object()->OnGetUsbInterfaceDescriptorCtl(request, output_buf_len); break; - case ADB_CTL_GET_ENDPOINT_INFORMATION: + case ADB_IOCTL_GET_ENDPOINT_INFORMATION: device_object()->OnGetEndpointInformationCtl(request, input_buf_len, output_buf_len); break; - case ADB_CTL_GET_SERIAL_NUMBER: + case ADB_IOCTL_GET_SERIAL_NUMBER: device_object()->OnGetSerialNumberCtl(request, output_buf_len); break; diff --git a/host/windows/usb/driver/android_usb_pipe_file_object.cpp b/host/windows/usb/driver/android_usb_pipe_file_object.cpp index 08d01654e..384668348 100644 --- a/host/windows/usb/driver/android_usb_pipe_file_object.cpp +++ b/host/windows/usb/driver/android_usb_pipe_file_object.cpp @@ -143,16 +143,16 @@ void AndroidUsbPipeFileObject::OnEvtIoDeviceControl(WDFREQUEST request, ULONG ioctl_code) { ASSERT_IRQL_LOW_OR_DISPATCH(); - switch (GetCtlCode(ioctl_code)) { - case ADB_CTL_GET_ENDPOINT_INFORMATION: + switch (ioctl_code) { + case ADB_IOCTL_GET_ENDPOINT_INFORMATION: OnCtlGetEndpointInformation(request, output_buf_len); break; - case ADB_CTL_BULK_READ: + case ADB_IOCTL_BULK_READ: OnCtlBulkRead(request, output_buf_len, input_buf_len); break; - case ADB_CTL_BULK_WRITE: + case ADB_IOCTL_BULK_WRITE: OnCtlBulkWrite(request, output_buf_len, input_buf_len); break; @@ -300,7 +300,7 @@ void AndroidUsbPipeFileObject::OnCtlBulkWrite(WDFREQUEST request, // 1. Never trust anything that comes from the User Mode. // 2. Never assume that anything that User Mode buffer has will remain // unchanged. - void* transfer_buffer = transfer_param->write_buffer; + void* transfer_buffer = transfer_param->GetWriteBuffer(); ULONG transfer_size = transfer_param->transfer_size; // Make sure zero length I/O doesn't go through |