initial commit
Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
commit
52fa59d4ac
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/target
|
37
Cargo.lock
generated
Normal file
37
Cargo.lock
generated
Normal file
@ -0,0 +1,37 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
[[package]]
|
||||
name = "ftdi-prog"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"ftdi-vcp-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ftdi-vcp-sys"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.3.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
|
||||
dependencies = [
|
||||
"winapi-i686-pc-windows-gnu",
|
||||
"winapi-x86_64-pc-windows-gnu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-i686-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-x86_64-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
12
Cargo.toml
Normal file
12
Cargo.toml
Normal file
@ -0,0 +1,12 @@
|
||||
[package]
|
||||
name = "ftdi-prog"
|
||||
version = "0.1.0"
|
||||
authors = ["Sean Cross <sean@xobs.io>"]
|
||||
edition = "2018"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
ftdi-vcp-sys = { path = "ftdi-vcp-sys" }
|
||||
[build-dependencies]
|
||||
# cc = { version = "1.0", features = ["parallel"] }
|
30
ftdi-vcp-sys/Cargo.lock
generated
Normal file
30
ftdi-vcp-sys/Cargo.lock
generated
Normal file
@ -0,0 +1,30 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
[[package]]
|
||||
name = "ftdi-vcp-sys"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.3.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
|
||||
dependencies = [
|
||||
"winapi-i686-pc-windows-gnu",
|
||||
"winapi-x86_64-pc-windows-gnu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-i686-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-x86_64-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
10
ftdi-vcp-sys/Cargo.toml
Normal file
10
ftdi-vcp-sys/Cargo.toml
Normal file
@ -0,0 +1,10 @@
|
||||
[package]
|
||||
name = "ftdi-vcp-sys"
|
||||
version = "0.1.0"
|
||||
authors = ["Sean Cross <sean@xobs.io>"]
|
||||
edition = "2018"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
winapi = { version = "0.3", features = ["minwindef", "ntdef"] }
|
10
ftdi-vcp-sys/build.rs
Normal file
10
ftdi-vcp-sys/build.rs
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
fn main() {
|
||||
let vcp_dir = "lib/vcp-2.12.28/amd64";
|
||||
println!("cargo:rustc-link-search=native={}", vcp_dir);
|
||||
// println!("cargo:rustc-link-lib=static={}/ftd2xx", vcp_dir);
|
||||
// cc::Build::new()
|
||||
// .file("foo.c")
|
||||
// .file("bar.c")
|
||||
// .compile("foo");
|
||||
}
|
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/Static/amd64/ftd2xx.lib
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/Static/amd64/ftd2xx.lib
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/Static/i386/ftd2xx.lib
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/Static/i386/ftd2xx.lib
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftbusui.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftbusui.dll
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftcserco.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftcserco.dll
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftd2xx.lib
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftd2xx.lib
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftd2xx64.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftd2xx64.dll
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftdibus.sys
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftdibus.sys
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftlang.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftlang.dll
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftser2k.sys
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftser2k.sys
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftserui2.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/amd64/ftserui2.dll
Normal file
Binary file not shown.
1446
ftdi-vcp-sys/lib/vcp-2.12.28/ftd2xx.h
Normal file
1446
ftdi-vcp-sys/lib/vcp-2.12.28/ftd2xx.h
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/ftdibus.cat
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/ftdibus.cat
Normal file
Binary file not shown.
502
ftdi-vcp-sys/lib/vcp-2.12.28/ftdibus.inf
Normal file
502
ftdi-vcp-sys/lib/vcp-2.12.28/ftdibus.inf
Normal file
@ -0,0 +1,502 @@
|
||||
; FTDIBUS.INF
|
||||
;
|
||||
; Copyright © 2000-2017 Future Technology Devices International Limited
|
||||
;
|
||||
; USB serial converter driver installation file for Windows 7, Windows 8, Windows 8.1, Windows 10,
|
||||
; Server 2008 R2, Server 2012 R2 and Server 2016.
|
||||
;
|
||||
;
|
||||
; IMPORTANT NOTICE: PLEASE READ CAREFULLY BEFORE INSTALLING THE RELEVANT
|
||||
; SOFTWARE: This licence agreement (Licence) is a legal agreement between you (Licensee or
|
||||
; you) and Future Technology Devices International Limited of 2 Seaward Place, Centurion Business
|
||||
; Park, Glasgow G41 1HH, Scotland (UK Company Number SC136640) (Licensor or we) for use of
|
||||
; driver software provided by the Licensor(Software).
|
||||
;
|
||||
; BY INSTALLING OR USING THIS SOFTWARE YOU AGREE TO THE TERMS OF THIS LICENCE
|
||||
; WHICH WILL BIND YOU. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, WE ARE
|
||||
; UNWILLING TO LICENSE THE SOFTWARE TO YOU AND YOU MUST DISCONTINUE
|
||||
; INSTALLATION OF THE SOFTWARE NOW.
|
||||
;
|
||||
; 1. GRANT AND SCOPE OF LICENCE
|
||||
;
|
||||
; 1.1 In consideration of you agreeing to abide by the terms of this Licence, the Licensor hereby
|
||||
; grants to you a non-exclusive, non-transferable, royalty free licence to use the Software on
|
||||
; the terms of this Licence.
|
||||
;
|
||||
; 1.2 In this Licence a "Genuine FTDI Component" means an item of hardware that was
|
||||
; manufactured for, and sold by, the Licensor or a member of the Licensor's group of
|
||||
; companies. It does not include any counterfeit or fake products.
|
||||
;
|
||||
; 1.3 If you are a manufacturer of a device that includes a Genuine FTDI Component (each a
|
||||
; "Device") then you may install the Software onto that device. If you are a seller or distributor
|
||||
; of a Device then you may distribute the Software with the Device. If you are a user of a
|
||||
; Device then you may install the Software on the Device, or onto a computer system in order
|
||||
; to use the Device.
|
||||
;
|
||||
; 1.4 In each of those cases you may:
|
||||
;
|
||||
; 1.4.1 install and use the Software for your purposes only; and
|
||||
;
|
||||
; 1.4.2 only use the Software in conjunction with products based on and/or incorporating a
|
||||
; Genuine FTDI Component.
|
||||
;
|
||||
; 1.5 The Software will not function properly on or with a component that is not a Genuine FTDI
|
||||
; Component. Use of the Software as a driver for, or installation of the Software onto, a
|
||||
; component that is not a Genuine FTDI Component, including without limitation counterfeit
|
||||
; components, MAY IRRETRIEVABLY DAMAGE THAT COMPONENT. It is the Licensee's
|
||||
; responsibility to make sure that all chips it installs the Software on, or uses the Software as a
|
||||
; driver for, are Genuine FTDI Components. If in doubt then contact the Licensor.
|
||||
;
|
||||
; 2. If a custom vendor ID and/or product ID or description string are used, it is the responsibility of
|
||||
; the product manufacturer to maintain any changes and subsequent WHQL re-certification as
|
||||
; a result of making these changes.
|
||||
;
|
||||
; 3. LICENSEE'S UNDERTAKINGS
|
||||
;
|
||||
; 3.1 Except as expressly set out in this Licence or as permitted by any local law, you undertake:
|
||||
;
|
||||
; 3.1.1 not to copy the Software, except where such copying is incidental to normal use of
|
||||
; the Software or where it is necessary for the purpose of back-up or operational
|
||||
; security;
|
||||
;
|
||||
; 3.1.2 not to rent, lease, sub-license, loan, translate, merge, adapt, vary or modify the
|
||||
; Software or any part of it;
|
||||
;
|
||||
; 3.1.3 not to make alterations to, or modifications of, the whole or any part of the Software
|
||||
; nor permit the Software or any part of it to be combined with, or become
|
||||
; incorporated in, any other programs;
|
||||
;
|
||||
; 3.1.4 not to disassemble, de-compile, reverse engineer or create derivative works based
|
||||
; on the whole or any part of the Software;
|
||||
;
|
||||
; 3.1.5 to keep all copies of the Software secure;
|
||||
;
|
||||
; 3.1.6 to include the copyright notice of the Licensor on all entire and partial copies of the
|
||||
; Software in any form; and
|
||||
;
|
||||
; 3.1.7 not to provide, or otherwise make available, the Software in any form, in whole or in
|
||||
; part (including, but not limited to, program listings, object and source program
|
||||
; listings, object code and source code) to any person.
|
||||
;
|
||||
; 4. INTELLECTUAL PROPERTY RIGHTS
|
||||
;
|
||||
; 4.1 You acknowledge that all intellectual property rights in the Software throughout the world
|
||||
; belong to the Licensor, that rights in the Software are licensed (not sold) to you, and that you
|
||||
; have no rights in, or to, the Software other than the right to use them in accordance with the
|
||||
; terms of this Licence.
|
||||
;
|
||||
; 5. WARRANTY
|
||||
;
|
||||
; 5.1 To the maximum extent permitted by applicable law, the software is provided "as is".
|
||||
;
|
||||
; 5.2 All implied warranties, implied conditions and/or implied licences are excluded from this
|
||||
; Licence, including but not limited to implied warranties of quality and/or fitness for purpose (in
|
||||
; all cases) to the fullest extent permitted by law.
|
||||
;
|
||||
; 5.3 You acknowledge that the Software has not been developed to meet your individual
|
||||
; requirements and that the Software may not be uninterrupted or free of bugs or errors.
|
||||
;
|
||||
; 6. LICENSOR'S LIABILITY
|
||||
;
|
||||
; 6.1 To the maximum extent permitted by applicable law, in no event shall the Licensor be liable
|
||||
; for any:
|
||||
;
|
||||
; 6.1.1 special loss or damage;
|
||||
;
|
||||
; 6.1.2 incidental loss or damage;
|
||||
;
|
||||
; 6.1.3 indirect or consequential loss or damage:
|
||||
;
|
||||
; 6.1.4 loss of income;
|
||||
;
|
||||
; 6.1.5 loss of business;
|
||||
;
|
||||
; 6.1.6 loss of profits;
|
||||
;
|
||||
; 6.1.7 loss of revenue;
|
||||
;
|
||||
; 6.1.8 loss of contracts;
|
||||
;
|
||||
; 6.1.9 business interruption;
|
||||
;
|
||||
; 6.1.10 loss of the use of money or anticipated savings;
|
||||
;
|
||||
; 6.1.11 loss of information;
|
||||
;
|
||||
; 6.1.12 loss of opportunity;
|
||||
;
|
||||
; 6.1.13 loss of goodwill or reputation; and/or
|
||||
;
|
||||
; 6.1.14 loss of, damage to or corruption of data;
|
||||
;
|
||||
; (in each case) of any kind howsoever arising and whether caused by delict (including
|
||||
; negligence), breach of contract or otherwise.
|
||||
;
|
||||
; 6.2 FTDI's total liability to you in relation to the Software shall not exceed 500 US Dollars.
|
||||
;
|
||||
; 6.3 Nothing in this Licence limits or excludes liability for death or personal injury or for fraud.
|
||||
;
|
||||
; 7. TERMINATION
|
||||
;
|
||||
; 7.1 The Licensor may terminate this Licence immediately if:
|
||||
;
|
||||
; 7.1.1 you fail to comply with any of the terms and conditions of the Licence; or
|
||||
;
|
||||
; 7.1.2 you commence or participate in any legal proceedings against the Licensor.
|
||||
;
|
||||
; 7.2 Upon termination:
|
||||
;
|
||||
; 7.2.1 all rights granted to you under this Licence shall cease;
|
||||
;
|
||||
; 7.2.2 you must cease all activities authorised by this Licence; and
|
||||
;
|
||||
; 7.2.3 you must immediately delete or remove the Software from all computer equipment
|
||||
; in your possession and immediately destroy all copies of the Software then in your
|
||||
; possession, custody or control.
|
||||
;
|
||||
; 8. TRANSFER OF RIGHTS AND OBLIGATIONS
|
||||
;
|
||||
; 8.1 You may not transfer, assign, charge or otherwise dispose of this Licence, or any of your
|
||||
; rights or obligations arising under it.
|
||||
;
|
||||
; 8.2 The Licensor may transfer, assign, charge, sub-contract or otherwise dispose of this Licence,
|
||||
; or any of his rights or obligations arising under it, at any time during the term of the Licence.
|
||||
;
|
||||
; 9. WAIVER
|
||||
;
|
||||
; 9.1 If the Licensor fails, at any time during the term of this Licence, to insist on strict performance
|
||||
; of any of your obligations under this Licence, or if the Licensor fails to exercise any of the
|
||||
; rights or remedies to which he is entitled under this Licence, this shall not constitute a waiver
|
||||
; of such rights or remedies and shall not relieve you from compliance with such obligations.
|
||||
;
|
||||
; 9.2 A waiver by the Licensor of any default shall not constitute a waiver of any subsequent
|
||||
; default.
|
||||
;
|
||||
; 9.3 No waiver by the Licensor of any of these terms and conditions shall be effective unless it is
|
||||
; expressly stated to be a waiver and is communicated to you in writing.
|
||||
;
|
||||
; 10. SEVERABILITY
|
||||
;
|
||||
; If any of the terms of this Licence are determined by any competent authority to be invalid,
|
||||
; unlawful or unenforceable to any extent, such term, condition or provision will to that extent be
|
||||
; severed from the remaining terms, conditions and provisions which will continue to be valid to
|
||||
; the fullest extent permitted by law.
|
||||
;
|
||||
; 11. ENTIRE AGREEMENT
|
||||
;
|
||||
; 11.1 This Licence constitutes the whole agreement between us and supersedes any previous
|
||||
; arrangement, understanding or agreement between us, relating to the licensing of the
|
||||
; Software.
|
||||
;
|
||||
; 11.2 Each party acknowledges that in entering into this Licence it does not rely on any statement,
|
||||
; representation, warranty or understanding other than those expressly set out in this Licence.
|
||||
; Each party agrees that it will have no remedy in respect of any statement, representation,
|
||||
; warranty or understanding that is not expressly set out in this Licence. Each party agrees that
|
||||
; its only remedy in respect of those representations, statements, assurances and warranties
|
||||
; that are set out in this Licence will be for breach of contract in accordance with the terms of
|
||||
; this Licence.
|
||||
;
|
||||
; 11.3 The parties agree that nothing in this Licence will limit or exclude any liability they may have
|
||||
; for fraud.
|
||||
;
|
||||
; 12. MISCELLANEOUS
|
||||
;
|
||||
; 12.1 This Licence does not create a partnership or joint venture between the parties to it, nor
|
||||
; authorise a party to act as agent for the other.
|
||||
;
|
||||
; 12.2 This Licence does not create any legal rights enforceable by any third party.
|
||||
;
|
||||
; 12.3 This Licence may only be varied by express written legal agreement between the parties.
|
||||
;
|
||||
; 13. LAW AND JURISDICTION
|
||||
;
|
||||
; This Licence, its subject matter or its formation (including non-contractual disputes or claims)
|
||||
; shall be governed by and construed in accordance with Scots law and submitted to the non-
|
||||
; exclusive jurisdiction of the Scottish courts.
|
||||
;
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
DriverPackageType=PlugAndPlay
|
||||
DriverPackageDisplayName=%DESC%
|
||||
Class=USB
|
||||
ClassGUID={36fc9e60-c465-11cf-8056-444553540000}
|
||||
Provider=%FTDI%
|
||||
CatalogFile=ftdibus.cat
|
||||
DriverVer=08/16/2017,2.12.28
|
||||
|
||||
[SourceDisksNames]
|
||||
1=%DriversDisk%,,,
|
||||
|
||||
[SourceDisksFiles]
|
||||
ftdibus.sys = 1,i386
|
||||
ftbusui.dll = 1,i386
|
||||
ftd2xx.dll = 1,i386
|
||||
FTLang.Dll = 1,i386
|
||||
|
||||
[SourceDisksFiles.amd64]
|
||||
ftdibus.sys = 1,amd64
|
||||
ftbusui.dll = 1,amd64
|
||||
ftd2xx64.dll = 1,amd64
|
||||
ftd2xx.dll = 1,i386
|
||||
FTLang.Dll = 1,amd64
|
||||
|
||||
[DestinationDirs]
|
||||
FtdiBus.NT.Copy = 10,system32\drivers
|
||||
FtdiBus.NT.Copy2 = 10,system32
|
||||
FtdiBus.NTamd64.Copy = 10,system32\drivers
|
||||
FtdiBus.NTamd64.Copy2 = 10,system32
|
||||
FtdiBus.NTamd64.Copy3 = 10,syswow64
|
||||
|
||||
[Manufacturer]
|
||||
%Ftdi%=FtdiHw,NTamd64
|
||||
|
||||
[FtdiHw]
|
||||
%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6001
|
||||
%USB\VID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6010&MI_00
|
||||
%USB\VID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6010&MI_01
|
||||
%USB\VID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_00
|
||||
%USB\VID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_01
|
||||
%USB\VID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_02
|
||||
%USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_03
|
||||
%USB\VID_0403&PID_6014.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6014
|
||||
%USB\VID_0403&PID_6015.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6015
|
||||
%USB\VID_0403&PID_601B&REV_1400.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&REV_1400
|
||||
%USB\VID_0403&PID_601B&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_00
|
||||
%USB\VID_0403&PID_601B&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_01
|
||||
%USB\VID_0403&PID_601B&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_02
|
||||
%USB\VID_0403&PID_601B&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_03
|
||||
%USB\VID_0403&PID_601C&REV_1700.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&REV_1700
|
||||
%USB\VID_0403&PID_601C&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_00
|
||||
%USB\VID_0403&PID_601C&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_01
|
||||
%USB\VID_0403&PID_601C&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_02
|
||||
%USB\VID_0403&PID_601C&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_03
|
||||
%USB\VID_0403&PID_0FEC.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_0FEC
|
||||
%USB\VID_0403&PID_6031&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6031&MI_00
|
||||
%USB\VID_0403&PID_6031&REV_2400.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6031&REV_2400
|
||||
%USB\VID_0403&PID_6032&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6032&MI_00
|
||||
%USB\VID_0403&PID_6032&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6032&MI_01
|
||||
%USB\VID_0403&PID_6033&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6033&MI_00
|
||||
%USB\VID_0403&PID_6033&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6033&MI_01
|
||||
%USB\VID_0403&PID_6033&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6033&MI_02
|
||||
%USB\VID_0403&PID_6034&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6034&MI_00
|
||||
%USB\VID_0403&PID_6034&REV_2500.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6034&REV_2500
|
||||
%USB\VID_0403&PID_6035&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6035&MI_00
|
||||
%USB\VID_0403&PID_6035&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6035&MI_01
|
||||
%USB\VID_0403&PID_6036&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6036&MI_00
|
||||
%USB\VID_0403&PID_6036&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6036&MI_01
|
||||
%USB\VID_0403&PID_6036&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6036&MI_02
|
||||
%USB\VID_0403&PID_6037&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6037&MI_00
|
||||
%USB\VID_0403&PID_6037&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6037&MI_01
|
||||
%USB\VID_0403&PID_6037&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6037&MI_02
|
||||
%USB\VID_0403&PID_6037&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6037&MI_03
|
||||
%USB\VID_0403&PID_6038&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_00
|
||||
%USB\VID_0403&PID_6038&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_01
|
||||
%USB\VID_0403&PID_6038&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_02
|
||||
%USB\VID_0403&PID_6038&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_03
|
||||
%USB\VID_0403&PID_6038&MI_04.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_04
|
||||
%USB\VID_0403&PID_6039&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_00
|
||||
%USB\VID_0403&PID_6039&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_01
|
||||
%USB\VID_0403&PID_6039&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_02
|
||||
%USB\VID_0403&PID_6039&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_03
|
||||
%USB\VID_0403&PID_6039&MI_04.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_04
|
||||
%USB\VID_0403&PID_6039&MI_05.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_05
|
||||
%USB\VID_0403&PID_603A&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_00
|
||||
%USB\VID_0403&PID_603A&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_01
|
||||
%USB\VID_0403&PID_603A&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_02
|
||||
%USB\VID_0403&PID_603A&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_03
|
||||
%USB\VID_0403&PID_603A&MI_04.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_04
|
||||
%USB\VID_0403&PID_603A&MI_05.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_05
|
||||
%USB\VID_0403&PID_603A&MI_06.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_06
|
||||
%USB\VID_0403&PID_603E.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603E
|
||||
%USB\VID_0403&PID_0000.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_0000
|
||||
|
||||
[FtdiHw.NTamd64]
|
||||
%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6001
|
||||
%USB\VID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6010&MI_00
|
||||
%USB\VID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6010&MI_01
|
||||
%USB\VID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_00
|
||||
%USB\VID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_01
|
||||
%USB\VID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_02
|
||||
%USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_03
|
||||
%USB\VID_0403&PID_6014.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6014
|
||||
%USB\VID_0403&PID_6015.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6015
|
||||
%USB\VID_0403&PID_601B&REV_1400.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&REV_1400
|
||||
%USB\VID_0403&PID_601B&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&MI_00
|
||||
%USB\VID_0403&PID_601B&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&MI_01
|
||||
%USB\VID_0403&PID_601B&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&MI_02
|
||||
%USB\VID_0403&PID_601B&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&MI_03
|
||||
%USB\VID_0403&PID_601C&REV_1700.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&REV_1700
|
||||
%USB\VID_0403&PID_601C&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&MI_00
|
||||
%USB\VID_0403&PID_601C&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&MI_01
|
||||
%USB\VID_0403&PID_601C&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&MI_02
|
||||
%USB\VID_0403&PID_601C&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&MI_03
|
||||
%USB\VID_0403&PID_0FEC.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_0FEC
|
||||
%USB\VID_0403&PID_6031&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6031&MI_00
|
||||
%USB\VID_0403&PID_6031&REV_2400.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6031&REV_2400
|
||||
%USB\VID_0403&PID_6032&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6032&MI_00
|
||||
%USB\VID_0403&PID_6032&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6032&MI_01
|
||||
%USB\VID_0403&PID_6033&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6033&MI_00
|
||||
%USB\VID_0403&PID_6033&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6033&MI_01
|
||||
%USB\VID_0403&PID_6033&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6033&MI_02
|
||||
%USB\VID_0403&PID_6034&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6034&MI_00
|
||||
%USB\VID_0403&PID_6034&REV_2500.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6035&REV_2500
|
||||
%USB\VID_0403&PID_6035&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6035&MI_00
|
||||
%USB\VID_0403&PID_6035&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6035&MI_01
|
||||
%USB\VID_0403&PID_6036&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6036&MI_00
|
||||
%USB\VID_0403&PID_6036&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6036&MI_01
|
||||
%USB\VID_0403&PID_6036&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6036&MI_02
|
||||
%USB\VID_0403&PID_6037&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6037&MI_00
|
||||
%USB\VID_0403&PID_6037&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6037&MI_01
|
||||
%USB\VID_0403&PID_6037&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6037&MI_02
|
||||
%USB\VID_0403&PID_6037&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6037&MI_03
|
||||
%USB\VID_0403&PID_6038&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_00
|
||||
%USB\VID_0403&PID_6038&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_01
|
||||
%USB\VID_0403&PID_6038&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_02
|
||||
%USB\VID_0403&PID_6038&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_03
|
||||
%USB\VID_0403&PID_6038&MI_04.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_04
|
||||
%USB\VID_0403&PID_6039&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_00
|
||||
%USB\VID_0403&PID_6039&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_01
|
||||
%USB\VID_0403&PID_6039&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_02
|
||||
%USB\VID_0403&PID_6039&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_03
|
||||
%USB\VID_0403&PID_6039&MI_04.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_04
|
||||
%USB\VID_0403&PID_6039&MI_05.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_05
|
||||
%USB\VID_0403&PID_603A&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_00
|
||||
%USB\VID_0403&PID_603A&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_01
|
||||
%USB\VID_0403&PID_603A&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_02
|
||||
%USB\VID_0403&PID_603A&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_03
|
||||
%USB\VID_0403&PID_603A&MI_04.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_04
|
||||
%USB\VID_0403&PID_603A&MI_05.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_05
|
||||
%USB\VID_0403&PID_603A&MI_06.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_06
|
||||
%USB\VID_0403&PID_603E.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603E
|
||||
%USB\VID_0403&PID_0000.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_0000
|
||||
|
||||
[ControlFlags]
|
||||
ExcludeFromSelect=*
|
||||
|
||||
[FtdiBus.NT]
|
||||
CopyFiles=FtdiBus.NT.Copy,FtdiBus.NT.Copy2
|
||||
AddReg=FtdiBus.NT.AddReg
|
||||
|
||||
[FtdiBus.NTamd64]
|
||||
CopyFiles=FtdiBus.NTamd64.Copy,FtdiBus.NTamd64.Copy2,FtdiBus.NTamd64.Copy3
|
||||
AddReg=FtdiBus.NT.AddReg
|
||||
|
||||
[FtdiBus.NT.Services]
|
||||
AddService = FTDIBUS, 0x00000002, FtdiBus.NT.AddService, FtdiBus.NT.EventLog_Inst
|
||||
|
||||
[FtdiBus.NTamd64.Services]
|
||||
AddService = FTDIBUS, 0x00000002, FtdiBus.NT.AddService, FtdiBus.NT.EventLog_Inst
|
||||
|
||||
[FtdiBus.NT.AddService]
|
||||
DisplayName = %SvcDesc%
|
||||
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType = 3 ; SERVICE_DEMAND_START
|
||||
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
|
||||
ServiceBinary = %10%\system32\drivers\ftdibus.sys
|
||||
LoadOrderGroup = Base
|
||||
|
||||
[FtdiBus.NT.AddReg]
|
||||
HKR,,DevLoader,,*ntkern
|
||||
HKR,,NTMPDriver,,ftdibus.sys
|
||||
HKR,,EnumPropPages32,,"ftbusui.dll,FTBUSUIPropPageProvider"
|
||||
|
||||
[FtdiBus.NT.EventLog_Inst]
|
||||
AddReg = FtdiBus.NT.EventLog_Inst.AddReg
|
||||
|
||||
[FtdiBus.NT.EventLog_Inst.AddReg]
|
||||
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\ftdibus.sys"
|
||||
HKR,,TypesSupported,0x00010001,7
|
||||
|
||||
[FtdiBus.NT.HW]
|
||||
AddReg=FtdiBus.NT.HW.AddReg
|
||||
|
||||
[FtdiBus.NTamd64.HW]
|
||||
AddReg=FtdiBus.NT.HW.AddReg
|
||||
|
||||
[FtdiBus.NT.HW.AddReg]
|
||||
;HKR,,"ConfigData",0x00010001,0x00000016
|
||||
|
||||
[FtdiBus.NT.Copy]
|
||||
ftdibus.sys
|
||||
|
||||
[FtdiBus.NT.Copy2]
|
||||
ftbusui.dll
|
||||
ftd2xx.dll
|
||||
FTLang.dll
|
||||
|
||||
[FtdiBus.NTamd64.Copy]
|
||||
ftdibus.sys
|
||||
|
||||
[FtdiBus.NTamd64.Copy2]
|
||||
ftbusui.dll
|
||||
ftd2xx.dll,ftd2xx64.dll
|
||||
FTLang.dll
|
||||
|
||||
[FtdiBus.NTamd64.Copy3]
|
||||
ftd2xx.dll
|
||||
|
||||
[Strings]
|
||||
Ftdi="FTDI"
|
||||
DESC="CDM Driver Package - Bus/D2XX Driver"
|
||||
DriversDisk="FTDI USB Drivers Disk"
|
||||
USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter"
|
||||
USB\VID_0403&PID_6010&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6010&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6011&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6011&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6011&MI_02.DeviceDesc="USB Serial Converter C"
|
||||
USB\VID_0403&PID_6011&MI_03.DeviceDesc="USB Serial Converter D"
|
||||
USB\VID_0403&PID_6014.DeviceDesc="USB Serial Converter"
|
||||
USB\VID_0403&PID_6015.DeviceDesc="USB Serial Converter"
|
||||
USB\VID_0403&PID_601B&REV_1400.DeviceDesc="FT4222 Mode 3 Device"
|
||||
USB\VID_0403&PID_601B&MI_00.DeviceDesc="FT4222 Interface A"
|
||||
USB\VID_0403&PID_601B&MI_01.DeviceDesc="FT4222 Interface B"
|
||||
USB\VID_0403&PID_601B&MI_02.DeviceDesc="FT4222 Interface C"
|
||||
USB\VID_0403&PID_601B&MI_03.DeviceDesc="FT4222 Interface D"
|
||||
USB\VID_0403&PID_601C&REV_1700.DeviceDesc="FT4222H Mode 3 Device"
|
||||
USB\VID_0403&PID_601C&MI_00.DeviceDesc="FT4222H Interface A"
|
||||
USB\VID_0403&PID_601C&MI_01.DeviceDesc="FT4222H Interface B"
|
||||
USB\VID_0403&PID_601C&MI_02.DeviceDesc="FT4222H Interface C"
|
||||
USB\VID_0403&PID_601C&MI_03.DeviceDesc="FT4222H Interface D"
|
||||
USB\VID_0403&PID_0FEC.DeviceDesc="UMFT4222PROG"
|
||||
USB\VID_0403&PID_6031&MI_00.DeviceDesc="USB Serial Converter"
|
||||
USB\VID_0403&PID_6031&REV_2400.DeviceDesc="USB Serial Converter"
|
||||
USB\VID_0403&PID_6032&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6032&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6033&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6033&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6033&MI_02.DeviceDesc="USB Serial Converter C"
|
||||
USB\VID_0403&PID_6034&MI_00.DeviceDesc="USB Serial Converter"
|
||||
USB\VID_0403&PID_6034&REV_2500.DeviceDesc="USB Serial Converter"
|
||||
USB\VID_0403&PID_6035&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6035&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6036&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6036&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6036&MI_02.DeviceDesc="USB Serial Converter C"
|
||||
USB\VID_0403&PID_6037&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6037&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6037&MI_02.DeviceDesc="USB Serial Converter C"
|
||||
USB\VID_0403&PID_6037&MI_03.DeviceDesc="USB Serial Converter D"
|
||||
USB\VID_0403&PID_6038&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6038&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6038&MI_02.DeviceDesc="USB Serial Converter C"
|
||||
USB\VID_0403&PID_6038&MI_03.DeviceDesc="USB Serial Converter D"
|
||||
USB\VID_0403&PID_6038&MI_04.DeviceDesc="USB Serial Converter E"
|
||||
USB\VID_0403&PID_6039&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_6039&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_6039&MI_02.DeviceDesc="USB Serial Converter C"
|
||||
USB\VID_0403&PID_6039&MI_03.DeviceDesc="USB Serial Converter D"
|
||||
USB\VID_0403&PID_6039&MI_04.DeviceDesc="USB Serial Converter E"
|
||||
USB\VID_0403&PID_6039&MI_05.DeviceDesc="USB Serial Converter F"
|
||||
USB\VID_0403&PID_603A&MI_00.DeviceDesc="USB Serial Converter A"
|
||||
USB\VID_0403&PID_603A&MI_01.DeviceDesc="USB Serial Converter B"
|
||||
USB\VID_0403&PID_603A&MI_02.DeviceDesc="USB Serial Converter C"
|
||||
USB\VID_0403&PID_603A&MI_03.DeviceDesc="USB Serial Converter D"
|
||||
USB\VID_0403&PID_603A&MI_04.DeviceDesc="USB Serial Converter E"
|
||||
USB\VID_0403&PID_603A&MI_05.DeviceDesc="USB Serial Converter F"
|
||||
USB\VID_0403&PID_603A&MI_06.DeviceDesc="USB Serial Converter G"
|
||||
USB\VID_0403&PID_603E.DeviceDesc="UMFTPD3A Programming Board"
|
||||
USB\VID_0403&PID_0000.DeviceDesc="USB Serial Converter"
|
||||
SvcDesc="USB Serial Converter Driver"
|
||||
ClassName="USB"
|
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/ftdiport.cat
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/ftdiport.cat
Normal file
Binary file not shown.
392
ftdi-vcp-sys/lib/vcp-2.12.28/ftdiport.inf
Normal file
392
ftdi-vcp-sys/lib/vcp-2.12.28/ftdiport.inf
Normal file
@ -0,0 +1,392 @@
|
||||
; FTDIPORT.INF
|
||||
;
|
||||
; Copyright © 2000-2017 Future Technology Devices International Limited
|
||||
;
|
||||
; USB serial port driver installation file for Windows 7, Windows 8, Windows 8.1, Windows 10,
|
||||
; Server 2008 R2, Server 2012 R2 and Server 2016.
|
||||
|
||||
;
|
||||
;
|
||||
; IMPORTANT NOTICE: PLEASE READ CAREFULLY BEFORE INSTALLING THE RELEVANT
|
||||
; SOFTWARE: This licence agreement (Licence) is a legal agreement between you (Licensee or
|
||||
; you) and Future Technology Devices International Limited of 2 Seaward Place, Centurion Business
|
||||
; Park, Glasgow G41 1HH, Scotland (UK Company Number SC136640) (Licensor or we) for use of
|
||||
; driver software provided by the Licensor(Software).
|
||||
;
|
||||
; BY INSTALLING OR USING THIS SOFTWARE YOU AGREE TO THE TERMS OF THIS LICENCE
|
||||
; WHICH WILL BIND YOU. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, WE ARE
|
||||
; UNWILLING TO LICENSE THE SOFTWARE TO YOU AND YOU MUST DISCONTINUE
|
||||
; INSTALLATION OF THE SOFTWARE NOW.
|
||||
;
|
||||
; 1. GRANT AND SCOPE OF LICENCE
|
||||
;
|
||||
; 1.1 In consideration of you agreeing to abide by the terms of this Licence, the Licensor hereby
|
||||
; grants to you a non-exclusive, non-transferable, royalty free licence to use the Software on
|
||||
; the terms of this Licence.
|
||||
;
|
||||
; 1.2 In this Licence a "Genuine FTDI Component" means an item of hardware that was
|
||||
; manufactured for, and sold by, the Licensor or a member of the Licensor's group of
|
||||
; companies. It does not include any counterfeit or fake products.
|
||||
;
|
||||
; 1.3 If you are a manufacturer of a device that includes a Genuine FTDI Component (each a
|
||||
; "Device") then you may install the Software onto that device. If you are a seller or distributor
|
||||
; of a Device then you may distribute the Software with the Device. If you are a user of a
|
||||
; Device then you may install the Software on the Device, or onto a computer system in order
|
||||
; to use the Device.
|
||||
;
|
||||
; 1.4 In each of those cases you may:
|
||||
;
|
||||
; 1.4.1 install and use the Software for your purposes only; and
|
||||
;
|
||||
; 1.4.2 only use the Software in conjunction with products based on and/or incorporating a
|
||||
; Genuine FTDI Component.
|
||||
;
|
||||
; 1.5 The Software will not function properly on or with a component that is not a Genuine FTDI
|
||||
; Component. Use of the Software as a driver for, or installation of the Software onto, a
|
||||
; component that is not a Genuine FTDI Component, including without limitation counterfeit
|
||||
; components, MAY IRRETRIEVABLY DAMAGE THAT COMPONENT. It is the Licensee's
|
||||
; responsibility to make sure that all chips it installs the Software on, or uses the Software as a
|
||||
; driver for, are Genuine FTDI Components. If in doubt then contact the Licensor.
|
||||
;
|
||||
; 2. If a custom vendor ID and/or product ID or description string are used, it is the responsibility of
|
||||
; the product manufacturer to maintain any changes and subsequent WHQL re-certification as
|
||||
; a result of making these changes.
|
||||
;
|
||||
; 3. LICENSEE'S UNDERTAKINGS
|
||||
;
|
||||
; 3.1 Except as expressly set out in this Licence or as permitted by any local law, you undertake:
|
||||
;
|
||||
; 3.1.1 not to copy the Software, except where such copying is incidental to normal use of
|
||||
; the Software or where it is necessary for the purpose of back-up or operational
|
||||
; security;
|
||||
;
|
||||
; 3.1.2 not to rent, lease, sub-license, loan, translate, merge, adapt, vary or modify the
|
||||
; Software or any part of it;
|
||||
;
|
||||
; 3.1.3 not to make alterations to, or modifications of, the whole or any part of the Software
|
||||
; nor permit the Software or any part of it to be combined with, or become
|
||||
; incorporated in, any other programs;
|
||||
;
|
||||
; 3.1.4 not to disassemble, de-compile, reverse engineer or create derivative works based
|
||||
; on the whole or any part of the Software;
|
||||
;
|
||||
; 3.1.5 to keep all copies of the Software secure;
|
||||
;
|
||||
; 3.1.6 to include the copyright notice of the Licensor on all entire and partial copies of the
|
||||
; Software in any form; and
|
||||
;
|
||||
; 3.1.7 not to provide, or otherwise make available, the Software in any form, in whole or in
|
||||
; part (including, but not limited to, program listings, object and source program
|
||||
; listings, object code and source code) to any person.
|
||||
;
|
||||
; 4. INTELLECTUAL PROPERTY RIGHTS
|
||||
;
|
||||
; 4.1 You acknowledge that all intellectual property rights in the Software throughout the world
|
||||
; belong to the Licensor, that rights in the Software are licensed (not sold) to you, and that you
|
||||
; have no rights in, or to, the Software other than the right to use them in accordance with the
|
||||
; terms of this Licence.
|
||||
;
|
||||
; 5. WARRANTY
|
||||
;
|
||||
; 5.1 To the maximum extent permitted by applicable law, the software is provided "as is".
|
||||
;
|
||||
; 5.2 All implied warranties, implied conditions and/or implied licences are excluded from this
|
||||
; Licence, including but not limited to implied warranties of quality and/or fitness for purpose (in
|
||||
; all cases) to the fullest extent permitted by law.
|
||||
;
|
||||
; 5.3 You acknowledge that the Software has not been developed to meet your individual
|
||||
; requirements and that the Software may not be uninterrupted or free of bugs or errors.
|
||||
;
|
||||
; 6. LICENSOR'S LIABILITY
|
||||
;
|
||||
; 6.1 To the maximum extent permitted by applicable law, in no event shall the Licensor be liable
|
||||
; for any:
|
||||
;
|
||||
; 6.1.1 special loss or damage;
|
||||
;
|
||||
; 6.1.2 incidental loss or damage;
|
||||
;
|
||||
; 6.1.3 indirect or consequential loss or damage:
|
||||
;
|
||||
; 6.1.4 loss of income;
|
||||
;
|
||||
; 6.1.5 loss of business;
|
||||
;
|
||||
; 6.1.6 loss of profits;
|
||||
;
|
||||
; 6.1.7 loss of revenue;
|
||||
;
|
||||
; 6.1.8 loss of contracts;
|
||||
;
|
||||
; 6.1.9 business interruption;
|
||||
;
|
||||
; 6.1.10 loss of the use of money or anticipated savings;
|
||||
;
|
||||
; 6.1.11 loss of information;
|
||||
;
|
||||
; 6.1.12 loss of opportunity;
|
||||
;
|
||||
; 6.1.13 loss of goodwill or reputation; and/or
|
||||
;
|
||||
; 6.1.14 loss of, damage to or corruption of data;
|
||||
;
|
||||
; (in each case) of any kind howsoever arising and whether caused by delict (including
|
||||
; negligence), breach of contract or otherwise.
|
||||
;
|
||||
; 6.2 FTDI's total liability to you in relation to the Software shall not exceed 500 US Dollars.
|
||||
;
|
||||
; 6.3 Nothing in this Licence limits or excludes liability for death or personal injury or for fraud.
|
||||
;
|
||||
; 7. TERMINATION
|
||||
;
|
||||
; 7.1 The Licensor may terminate this Licence immediately if:
|
||||
;
|
||||
; 7.1.1 you fail to comply with any of the terms and conditions of the Licence; or
|
||||
;
|
||||
; 7.1.2 you commence or participate in any legal proceedings against the Licensor.
|
||||
;
|
||||
; 7.2 Upon termination:
|
||||
;
|
||||
; 7.2.1 all rights granted to you under this Licence shall cease;
|
||||
;
|
||||
; 7.2.2 you must cease all activities authorised by this Licence; and
|
||||
;
|
||||
; 7.2.3 you must immediately delete or remove the Software from all computer equipment
|
||||
; in your possession and immediately destroy all copies of the Software then in your
|
||||
; possession, custody or control.
|
||||
;
|
||||
; 8. TRANSFER OF RIGHTS AND OBLIGATIONS
|
||||
;
|
||||
; 8.1 You may not transfer, assign, charge or otherwise dispose of this Licence, or any of your
|
||||
; rights or obligations arising under it.
|
||||
;
|
||||
; 8.2 The Licensor may transfer, assign, charge, sub-contract or otherwise dispose of this Licence,
|
||||
; or any of his rights or obligations arising under it, at any time during the term of the Licence.
|
||||
;
|
||||
; 9. WAIVER
|
||||
;
|
||||
; 9.1 If the Licensor fails, at any time during the term of this Licence, to insist on strict performance
|
||||
; of any of your obligations under this Licence, or if the Licensor fails to exercise any of the
|
||||
; rights or remedies to which he is entitled under this Licence, this shall not constitute a waiver
|
||||
; of such rights or remedies and shall not relieve you from compliance with such obligations.
|
||||
;
|
||||
; 9.2 A waiver by the Licensor of any default shall not constitute a waiver of any subsequent
|
||||
; default.
|
||||
;
|
||||
; 9.3 No waiver by the Licensor of any of these terms and conditions shall be effective unless it is
|
||||
; expressly stated to be a waiver and is communicated to you in writing.
|
||||
;
|
||||
; 10. SEVERABILITY
|
||||
;
|
||||
; If any of the terms of this Licence are determined by any competent authority to be invalid,
|
||||
; unlawful or unenforceable to any extent, such term, condition or provision will to that extent be
|
||||
; severed from the remaining terms, conditions and provisions which will continue to be valid to
|
||||
; the fullest extent permitted by law.
|
||||
;
|
||||
; 11. ENTIRE AGREEMENT
|
||||
;
|
||||
; 11.1 This Licence constitutes the whole agreement between us and supersedes any previous
|
||||
; arrangement, understanding or agreement between us, relating to the licensing of the
|
||||
; Software.
|
||||
;
|
||||
; 11.2 Each party acknowledges that in entering into this Licence it does not rely on any statement,
|
||||
; representation, warranty or understanding other than those expressly set out in this Licence.
|
||||
; Each party agrees that it will have no remedy in respect of any statement, representation,
|
||||
; warranty or understanding that is not expressly set out in this Licence. Each party agrees that
|
||||
; its only remedy in respect of those representations, statements, assurances and warranties
|
||||
; that are set out in this Licence will be for breach of contract in accordance with the terms of
|
||||
; this Licence.
|
||||
;
|
||||
; 11.3 The parties agree that nothing in this Licence will limit or exclude any liability they may have
|
||||
; for fraud.
|
||||
;
|
||||
; 12. MISCELLANEOUS
|
||||
;
|
||||
; 12.1 This Licence does not create a partnership or joint venture between the parties to it, nor
|
||||
; authorise a party to act as agent for the other.
|
||||
;
|
||||
; 12.2 This Licence does not create any legal rights enforceable by any third party.
|
||||
;
|
||||
; 12.3 This Licence may only be varied by express written legal agreement between the parties.
|
||||
;
|
||||
; 13. LAW AND JURISDICTION
|
||||
;
|
||||
; This Licence, its subject matter or its formation (including non-contractual disputes or claims)
|
||||
; shall be governed by and construed in accordance with Scots law and submitted to the non-
|
||||
; exclusive jurisdiction of the Scottish courts.
|
||||
;
|
||||
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
DriverPackageType=PlugAndPlay
|
||||
DriverPackageDisplayName=%DESC%
|
||||
Class=Ports
|
||||
ClassGUID={4d36e978-e325-11ce-bfc1-08002be10318}
|
||||
Provider=%FTDI%
|
||||
CatalogFile=ftdiport.cat
|
||||
DriverVer=08/16/2017,2.12.28
|
||||
|
||||
[SourceDisksNames]
|
||||
1=%DriversDisk%,,,
|
||||
|
||||
[SourceDisksFiles]
|
||||
ftser2k.sys=1,i386
|
||||
ftserui2.dll=1,i386
|
||||
ftcserco.dll = 1,i386
|
||||
|
||||
[SourceDisksFiles.amd64]
|
||||
ftser2k.sys=1,amd64
|
||||
ftserui2.dll=1,amd64
|
||||
ftcserco.dll = 1,amd64
|
||||
|
||||
[DestinationDirs]
|
||||
FtdiPort.NT.Copy=10,system32\drivers
|
||||
FtdiPort.NT.CopyUI=10,system32
|
||||
FtdiPort.NT.CopyCoInst=10,system32
|
||||
|
||||
[ControlFlags]
|
||||
ExcludeFromSelect=*
|
||||
|
||||
[Manufacturer]
|
||||
%FTDI%=FtdiHw,NTamd64
|
||||
|
||||
[FtdiHw]
|
||||
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6001
|
||||
%VID_0403&PID_6010.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6010
|
||||
%VID_0403&PID_6011.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6011
|
||||
%VID_0403&PID_6014.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6014
|
||||
%VID_0403&PID_6015.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6015
|
||||
%VID_0403&PID_6031.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6031
|
||||
%VID_0403&PID_6032.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6032
|
||||
%VID_0403&PID_6033.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6033
|
||||
%VID_0403&PID_6034.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6034
|
||||
%VID_0403&PID_6035.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6035
|
||||
%VID_0403&PID_6036.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6036
|
||||
%VID_0403&PID_6037.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6037
|
||||
%VID_0403&PID_6038.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6038
|
||||
%VID_0403&PID_6039.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6039
|
||||
%VID_0403&PID_603A.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_603A
|
||||
%VID_0403&PID_0000.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_0000
|
||||
|
||||
[FtdiHw.NTamd64]
|
||||
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6001
|
||||
%VID_0403&PID_6010.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6010
|
||||
%VID_0403&PID_6011.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6011
|
||||
%VID_0403&PID_6014.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6014
|
||||
%VID_0403&PID_6015.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6015
|
||||
%VID_0403&PID_6031.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6031
|
||||
%VID_0403&PID_6032.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6032
|
||||
%VID_0403&PID_6033.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6033
|
||||
%VID_0403&PID_6034.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6034
|
||||
%VID_0403&PID_6035.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6035
|
||||
%VID_0403&PID_6036.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6036
|
||||
%VID_0403&PID_6037.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6037
|
||||
%VID_0403&PID_6038.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6038
|
||||
%VID_0403&PID_6039.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6039
|
||||
%VID_0403&PID_603A.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_603A
|
||||
%VID_0403&PID_0000.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_0000
|
||||
|
||||
[FtdiPort.NT.AddService]
|
||||
DisplayName = %SvcDesc%
|
||||
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType = 3 ; SERVICE_DEMAND_START
|
||||
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
|
||||
ServiceBinary = %10%\system32\drivers\ftser2k.sys
|
||||
LoadOrderGroup = Base
|
||||
|
||||
|
||||
; -------------- Serenum Driver install section
|
||||
[SerEnum_AddService]
|
||||
DisplayName = %SerEnum.SvcDesc%
|
||||
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||
StartType = 3 ; SERVICE_DEMAND_START
|
||||
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
|
||||
ServiceBinary = %12%\serenum.sys
|
||||
LoadOrderGroup = PNP Filter
|
||||
|
||||
[FtdiPort.NT.AddReg]
|
||||
HKR,,EnumPropPages32,,"ftserui2.dll,SerialPortPropPageProvider"
|
||||
|
||||
[FtdiPort.NT.Copy]
|
||||
ftser2k.sys
|
||||
|
||||
[FtdiPort.NT.CopyUI]
|
||||
ftserui2.dll
|
||||
|
||||
[FtdiPort.NT.CopyCoInst]
|
||||
ftcserco.dll
|
||||
|
||||
[FtdiPort.NT]
|
||||
CopyFiles=FtdiPort.NT.Copy,FtdiPort.NT.CopyUI
|
||||
AddReg=FtdiPort.NT.AddReg
|
||||
|
||||
[FtdiPort.NTamd64]
|
||||
CopyFiles=FtdiPort.NT.Copy,FtdiPort.NT.CopyUI
|
||||
AddReg=FtdiPort.NT.AddReg
|
||||
|
||||
[FtdiPort.NT.HW]
|
||||
AddReg=FtdiPort.NT.HW.AddReg
|
||||
|
||||
[FtdiPort.NTamd64.HW]
|
||||
AddReg=FtdiPort.NT.HW.AddReg
|
||||
|
||||
|
||||
[FtdiPort.NT.Services]
|
||||
AddService = FTSER2K, 0x00000002, FtdiPort.NT.AddService
|
||||
AddService = Serenum,,SerEnum_AddService
|
||||
DelService = FTSERIAL
|
||||
|
||||
[FtdiPort.NTamd64.Services]
|
||||
AddService = FTSER2K, 0x00000002, FtdiPort.NT.AddService
|
||||
AddService = Serenum,,SerEnum_AddService
|
||||
DelService = FTSERIAL
|
||||
|
||||
|
||||
[FtdiPort.NT.HW.AddReg]
|
||||
HKR,,"UpperFilters",0x00010000,"serenum"
|
||||
HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00
|
||||
HKR,,"MinReadTimeout",0x00010001,0
|
||||
HKR,,"MinWriteTimeout",0x00010001,0
|
||||
HKR,,"LatencyTimer",0x00010001,16
|
||||
|
||||
|
||||
[FtdiPort.NT.CoInstallers]
|
||||
AddReg=FtdiPort.NT.CoInstallers.AddReg
|
||||
CopyFiles=FtdiPort.NT.CopyCoInst
|
||||
|
||||
[FtdiPort.NTamd64.CoInstallers]
|
||||
AddReg=FtdiPort.NT.CoInstallers.AddReg
|
||||
CopyFiles=FtdiPort.NT.CopyCoInst
|
||||
|
||||
[FtdiPort.NT.CoInstallers.AddReg]
|
||||
HKR,,CoInstallers32,0x00010000,"ftcserco.Dll,FTCSERCoInstaller"
|
||||
|
||||
|
||||
;---------------------------------------------------------------;
|
||||
|
||||
[Strings]
|
||||
FTDI="FTDI"
|
||||
DESC="CDM Driver Package - VCP Driver"
|
||||
DriversDisk="FTDI USB Drivers Disk"
|
||||
PortsClassName = "Ports (COM & LPT)"
|
||||
VID_0403&PID_6001.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6010.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6011.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6014.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6015.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6031.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6032.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6033.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6034.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6035.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6036.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6037.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6038.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_6039.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_603A.DeviceDesc="USB Serial Port"
|
||||
VID_0403&PID_0000.DeviceDesc="USB Serial Port"
|
||||
SvcDesc="USB Serial Port Driver"
|
||||
SerEnum.SvcDesc="Serenum Filter Driver"
|
||||
|
||||
|
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftbusui.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftbusui.dll
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftcserco.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftcserco.dll
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftd2xx.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftd2xx.dll
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftd2xx.lib
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftd2xx.lib
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftdibus.sys
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftdibus.sys
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftlang.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftlang.dll
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftser2k.sys
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftser2k.sys
Normal file
Binary file not shown.
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftserui2.dll
Normal file
BIN
ftdi-vcp-sys/lib/vcp-2.12.28/i386/ftserui2.dll
Normal file
Binary file not shown.
188
ftdi-vcp-sys/src/lib.rs
Normal file
188
ftdi-vcp-sys/src/lib.rs
Normal file
@ -0,0 +1,188 @@
|
||||
#![allow(non_camel_case_types, non_snake_case)]
|
||||
|
||||
extern crate winapi;
|
||||
// use winapi::um::winnt::{PVOID, ULONG, DWORD};
|
||||
pub use winapi::shared::minwindef::{DWORD, LPDWORD, LPLONG, LPVOID};
|
||||
pub use winapi::shared::ntdef::{PVOID, ULONG, LONG};
|
||||
|
||||
#[allow(non_camel_case_types)]
|
||||
type FT_HANDLE = PVOID;
|
||||
#[allow(non_camel_case_types)]
|
||||
type FT_STATUS = ULONG;
|
||||
|
||||
#[allow(non_camel_case_types)]
|
||||
#[repr(C)]
|
||||
#[derive(Clone)]
|
||||
pub struct FT_DEVICE_LIST_INFO_NODE {
|
||||
Flags: ULONG,
|
||||
Type: ULONG,
|
||||
ID: ULONG,
|
||||
LocId: DWORD,
|
||||
SerialNumber: [u8; 16],
|
||||
Description: [u8; 64],
|
||||
ftHandle: FT_HANDLE,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub enum FtStatus {
|
||||
FT_OK = 0,
|
||||
FT_INVALID_HANDLE = 1,
|
||||
FT_DEVICE_NOT_FOUND = 2,
|
||||
FT_DEVICE_NOT_OPENED = 3,
|
||||
FT_IO_ERROR = 4,
|
||||
FT_INSUFFICIENT_RESOURCES = 5,
|
||||
FT_INVALID_PARAMETER = 6,
|
||||
FT_INVALID_BAUD_RATE = 7,
|
||||
|
||||
FT_DEVICE_NOT_OPENED_FOR_ERASE = 8,
|
||||
FT_DEVICE_NOT_OPENED_FOR_WRITE = 9,
|
||||
FT_FAILED_TO_WRITE_DEVICE = 10,
|
||||
FT_EEPROM_READ_FAILED = 11,
|
||||
FT_EEPROM_WRITE_FAILED = 12,
|
||||
FT_EEPROM_ERASE_FAILED = 13,
|
||||
FT_EEPROM_NOT_PRESENT = 14,
|
||||
FT_EEPROM_NOT_PROGRAMMED = 15,
|
||||
FT_INVALID_ARGS = 16,
|
||||
FT_NOT_SUPPORTED = 17,
|
||||
FT_OTHER_ERROR = 18,
|
||||
FT_DEVICE_LIST_NOT_READY = 19,
|
||||
}
|
||||
|
||||
// // Device information flags
|
||||
// enum FT_FLAGS {
|
||||
// FT_FLAGS_OPENED = 1,
|
||||
// FT_FLAGS_HISPEED = 2,
|
||||
// }
|
||||
|
||||
pub const FT_OPEN_BY_SERIAL_NUMBER: DWORD = 1;
|
||||
pub const FT_OPEN_BY_DESCRIPTION: DWORD = 2;
|
||||
pub const FT_OPEN_BY_LOCATION: DWORD = 4;
|
||||
|
||||
pub const FT_LIST_NUMBER_ONLY: DWORD = 0x80000000;
|
||||
pub const FT_LIST_BY_INDEX: DWORD = 0x40000000;
|
||||
pub const FT_LIST_ALL: DWORD = 0x20000000;
|
||||
|
||||
pub const FT_LIST_MASK: DWORD = (FT_LIST_NUMBER_ONLY | FT_LIST_BY_INDEX | FT_LIST_ALL);
|
||||
|
||||
#[link(name = "ftd2xx")]
|
||||
#[allow(non_snake_case)]
|
||||
#[allow(dead_code)]
|
||||
extern "stdcall" {
|
||||
fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;
|
||||
fn FT_CreateDeviceInfoList(lpdwNumDevs: LPDWORD) -> FT_STATUS;
|
||||
fn FT_GetDeviceInfoList(
|
||||
pDest: *mut FT_DEVICE_LIST_INFO_NODE,
|
||||
lpdwNumDevs: LPDWORD,
|
||||
) -> FT_STATUS;
|
||||
fn FT_GetDeviceInfoDetail(
|
||||
dwIndex: DWORD,
|
||||
lpdwFlags: LPDWORD,
|
||||
lpdwType: LPDWORD,
|
||||
lpdwID: LPDWORD,
|
||||
lpdwLocId: LPDWORD,
|
||||
lpSerialNumber: LPVOID,
|
||||
lpDescription: LPVOID,
|
||||
pftHandle: *mut FT_HANDLE,
|
||||
) -> FT_STATUS;
|
||||
fn FT_GetComPortNumber(ftHandle: FT_HANDLE, lpdwComPortNumber: LPLONG) -> FT_STATUS;
|
||||
fn FT_Open(deviceNumber: u32, pHandle: *mut FT_HANDLE) -> FT_STATUS;
|
||||
fn FT_OpenEx(pArg1: PVOID, Flags: DWORD, pHandle: *mut FT_HANDLE) -> FT_STATUS;
|
||||
fn FT_Close(ftHandle: FT_HANDLE) -> FT_STATUS;
|
||||
}
|
||||
|
||||
pub fn create_device_info_list() -> Result<usize, usize> {
|
||||
let device_count: DWORD = 0;
|
||||
let result = unsafe { FT_CreateDeviceInfoList(&device_count as *const _ as LPDWORD) };
|
||||
if result == 0 {
|
||||
Ok(device_count as usize)
|
||||
} else {
|
||||
Err(result as usize)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_device_info_list() -> Result<Vec<FT_DEVICE_LIST_INFO_NODE>, usize> {
|
||||
let mut dev_info = vec![];
|
||||
|
||||
let device_count = create_device_info_list()?;
|
||||
dev_info.resize(
|
||||
device_count as usize,
|
||||
FT_DEVICE_LIST_INFO_NODE {
|
||||
Flags: 0,
|
||||
Type: 0,
|
||||
ID: 0,
|
||||
LocId: 0,
|
||||
SerialNumber: [0; 16],
|
||||
Description: [0; 64],
|
||||
ftHandle: 0 as FT_HANDLE,
|
||||
},
|
||||
);
|
||||
let result = unsafe {
|
||||
FT_GetDeviceInfoList(dev_info.as_mut_ptr(), &device_count as *const _ as LPDWORD)
|
||||
};
|
||||
if result != 0 {
|
||||
return Err(result as usize);
|
||||
}
|
||||
Ok(dev_info)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::*;
|
||||
use std::ffi::CStr;
|
||||
#[test]
|
||||
fn list_devices() {
|
||||
println!("Listing devices...");
|
||||
let device_count = create_device_info_list().expect("couldn't list devices");
|
||||
// let result = unsafe { FT_ListDevices(&device_count as *const i32 as PVOID, 0 as PVOID, FT_LIST_NUMBER_ONLY) };
|
||||
println!("There are {} devices", device_count);
|
||||
|
||||
let dev_info = get_device_info_list().expect("couldn't get device info list");
|
||||
for item in dev_info {
|
||||
println!("Flags: {:08x}", item.Flags);
|
||||
println!("Type: {:08x}", item.Type);
|
||||
println!("ID: {:08x}", item.ID);
|
||||
println!("LocId: {:08x}", item.LocId);
|
||||
println!("SerialNumber: {:?}", item.SerialNumber);
|
||||
// let description = CStr::from_bytes_with_nul(&item.Description).expect("couldn't parse item string");
|
||||
let p = &item.Description as *const u8 as *const i8;
|
||||
let description = unsafe { CStr::from_ptr(p) };
|
||||
println!("Description: {}", description.to_string_lossy()); //String::from_utf8_lossy(&item.Description));
|
||||
print!(" ");
|
||||
for ch in item.Description.iter() {
|
||||
print!(" {:02x}", ch);
|
||||
}
|
||||
println!("");
|
||||
println!("ftHandle: {:08x}", item.ftHandle as usize);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn open_device() {
|
||||
let desc = b"Lattice FTUSB Interface Cable B\0";
|
||||
let mut handle = 0 as FT_HANDLE;
|
||||
let result = unsafe {
|
||||
FT_OpenEx(
|
||||
desc.as_ptr() as PVOID,
|
||||
FT_OPEN_BY_DESCRIPTION,
|
||||
(&mut handle) as *mut FT_HANDLE,
|
||||
)
|
||||
};
|
||||
println!("Result: {}", result);
|
||||
if result != 0 {
|
||||
panic!("couldn't open handle: result not 0");
|
||||
}
|
||||
|
||||
let mut com_port_number: LONG = 0;
|
||||
let result = unsafe { FT_GetComPortNumber(handle, &mut com_port_number) };
|
||||
if result != 0 {
|
||||
panic!("couldn't get com port number");
|
||||
}
|
||||
println!("Device opened on COM{}:", com_port_number);
|
||||
|
||||
let result = unsafe { FT_Close(handle) };
|
||||
println!("Result: {}", result);
|
||||
if result != 0 {
|
||||
panic!("couldn't close handle: result not 0");
|
||||
}
|
||||
}
|
||||
}
|
1
ftdi-vcp-sys/target/.rustc_info.json
Normal file
1
ftdi-vcp-sys/target/.rustc_info.json
Normal file
@ -0,0 +1 @@
|
||||
{"rustc_fingerprint":2372964052909571043,"outputs":{"4476964694761187371":["___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\smcro\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n",""],"1164083562126845933":["rustc 1.41.1 (f3e1a954d 2020-02-24)\nbinary: rustc\ncommit-hash: f3e1a954d2ead4e2fc197c7da7d71e6c61bad196\ncommit-date: 2020-02-24\nhost: x86_64-pc-windows-msvc\nrelease: 1.41.1\nLLVM version: 9.0\n",""]},"successes":{}}
|
0
ftdi-vcp-sys/target/debug/.cargo-lock
Normal file
0
ftdi-vcp-sys/target/debug/.cargo-lock
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
@ -0,0 +1 @@
|
||||
cb505e63aeaac006
|
@ -0,0 +1 @@
|
||||
{"rustc":13421301608916057402,"features":"[]","target":11924813428260860161,"profile":8248545651247322450,"path":10872709659218687626,"deps":[[2693066915275761720,"winapi",false,14289487232430214174],[9924424717942368762,"build_script_build",false,1376035238852711626]],"local":[{"CheckDepInfo":{"dep_info":"debug\\.fingerprint\\ftdi-vcp-sys-58b72ef14df83c34\\dep-test-lib-ftdi_vcp_sys-58b72ef14df83c34"}}],"rustflags":[],"metadata":8199227496823213954}
|
@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
@ -0,0 +1,36 @@
|
||||
{"message":"expected `{`, found `FT_GetComPortNumber`","code":null,"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":2893,"byte_end":2912,"line_start":77,"line_end":77,"column_start":33,"column_end":52,"is_primary":true,"text":[{"text":" let result = unsafe FT_GetComPortNumber","highlight_start":33,"highlight_end":52}],"label":"expected `{`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: expected `{`, found `FT_GetComPortNumber`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:77:33\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m77\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m let result = unsafe FT_GetComPortNumber\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^^^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mexpected `{`\u001b[0m\n\n"}
|
||||
{"message":"failed to resolve: use of undeclared type or module `CStr`","code":{"code":"E0433","explanation":"An undeclared type or module was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type or module `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":2451,"byte_end":2455,"line_start":67,"line_end":67,"column_start":40,"column_end":44,"is_primary":true,"text":[{"text":" let description = unsafe { CStr::from_ptr(p) };","highlight_start":40,"highlight_end":44}],"label":"use of undeclared type or module `CStr`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0433]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: failed to resolve: use of undeclared type or module `CStr`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:67:40\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m67\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m let description = unsafe { CStr::from_ptr(p) };\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9muse of undeclared type or module `CStr`\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `PVOID` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":118,"byte_end":123,"line_start":5,"line_end":5,"column_start":30,"column_end":35,"is_primary":true,"text":[{"text":" fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;","highlight_start":30,"highlight_end":35}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `PVOID` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:5:30\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `PVOID` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":132,"byte_end":137,"line_start":5,"line_end":5,"column_start":44,"column_end":49,"is_primary":true,"text":[{"text":" fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;","highlight_start":44,"highlight_end":49}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `PVOID` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:5:44\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `DWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":146,"byte_end":151,"line_start":5,"line_end":5,"column_start":58,"column_end":63,"is_primary":true,"text":[{"text":" fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;","highlight_start":58,"highlight_end":63}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `DWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:5:58\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_STATUS` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":156,"byte_end":165,"line_start":5,"line_end":5,"column_start":68,"column_end":77,"is_primary":true,"text":[{"text":" fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;","highlight_start":68,"highlight_end":77}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_STATUS` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:5:68\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_ListDevices(pArg1: PVOID, pArg2: PVOID, Flags: DWORD) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPDWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":211,"byte_end":218,"line_start":6,"line_end":6,"column_start":45,"column_end":52,"is_primary":true,"text":[{"text":" fn FT_CreateDeviceInfoList(lpdwNumDevs: LPDWORD) -> FT_STATUS;","highlight_start":45,"highlight_end":52}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPDWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:6:45\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m6\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_CreateDeviceInfoList(lpdwNumDevs: LPDWORD) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_STATUS` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":223,"byte_end":232,"line_start":6,"line_end":6,"column_start":57,"column_end":66,"is_primary":true,"text":[{"text":" fn FT_CreateDeviceInfoList(lpdwNumDevs: LPDWORD) -> FT_STATUS;","highlight_start":57,"highlight_end":66}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_STATUS` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:6:57\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m6\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_CreateDeviceInfoList(lpdwNumDevs: LPDWORD) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_DEVICE_LIST_INFO_NODE` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":283,"byte_end":307,"line_start":8,"line_end":8,"column_start":21,"column_end":45,"is_primary":true,"text":[{"text":" pDest: *mut FT_DEVICE_LIST_INFO_NODE,","highlight_start":21,"highlight_end":45}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_DEVICE_LIST_INFO_NODE` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:8:21\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m8\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m pDest: *mut FT_DEVICE_LIST_INFO_NODE,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPDWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":330,"byte_end":337,"line_start":9,"line_end":9,"column_start":22,"column_end":29,"is_primary":true,"text":[{"text":" lpdwNumDevs: LPDWORD,","highlight_start":22,"highlight_end":29}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPDWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:9:22\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m9\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m lpdwNumDevs: LPDWORD,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_STATUS` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":348,"byte_end":357,"line_start":10,"line_end":10,"column_start":10,"column_end":19,"is_primary":true,"text":[{"text":" ) -> FT_STATUS;","highlight_start":10,"highlight_end":19}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_STATUS` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:10:10\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m10\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m ) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `DWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":407,"byte_end":412,"line_start":12,"line_end":12,"column_start":18,"column_end":23,"is_primary":true,"text":[{"text":" dwIndex: DWORD,","highlight_start":18,"highlight_end":23}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `DWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:12:18\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m12\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m dwIndex: DWORD,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPDWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":433,"byte_end":440,"line_start":13,"line_end":13,"column_start":20,"column_end":27,"is_primary":true,"text":[{"text":" lpdwFlags: LPDWORD,","highlight_start":20,"highlight_end":27}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPDWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:13:20\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m13\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m lpdwFlags: LPDWORD,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPDWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":460,"byte_end":467,"line_start":14,"line_end":14,"column_start":19,"column_end":26,"is_primary":true,"text":[{"text":" lpdwType: LPDWORD,","highlight_start":19,"highlight_end":26}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPDWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:14:19\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m14\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m lpdwType: LPDWORD,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPDWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":485,"byte_end":492,"line_start":15,"line_end":15,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":" lpdwID: LPDWORD,","highlight_start":17,"highlight_end":24}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPDWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:15:17\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m15\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m lpdwID: LPDWORD,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPDWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":513,"byte_end":520,"line_start":16,"line_end":16,"column_start":20,"column_end":27,"is_primary":true,"text":[{"text":" lpdwLocId: LPDWORD,","highlight_start":20,"highlight_end":27}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPDWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:16:20\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m lpdwLocId: LPDWORD,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPVOID` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":546,"byte_end":552,"line_start":17,"line_end":17,"column_start":25,"column_end":31,"is_primary":true,"text":[{"text":" lpSerialNumber: LPVOID,","highlight_start":25,"highlight_end":31}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPVOID` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:17:25\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m17\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m lpSerialNumber: LPVOID,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPVOID` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":577,"byte_end":583,"line_start":18,"line_end":18,"column_start":24,"column_end":30,"is_primary":true,"text":[{"text":" lpDescription: LPVOID,","highlight_start":24,"highlight_end":30}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPVOID` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:18:24\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m18\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m lpDescription: LPVOID,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_HANDLE` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":609,"byte_end":618,"line_start":19,"line_end":19,"column_start":25,"column_end":34,"is_primary":true,"text":[{"text":" pftHandle: *mut FT_HANDLE,","highlight_start":25,"highlight_end":34}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_HANDLE` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:19:25\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m19\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m pftHandle: *mut FT_HANDLE,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_STATUS` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":629,"byte_end":638,"line_start":20,"line_end":20,"column_start":10,"column_end":19,"is_primary":true,"text":[{"text":" ) -> FT_STATUS;","highlight_start":10,"highlight_end":19}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_STATUS` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:20:10\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m20\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m ) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_HANDLE` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":677,"byte_end":686,"line_start":21,"line_end":21,"column_start":38,"column_end":47,"is_primary":true,"text":[{"text":" fn FT_GetComPortNumber(ftHandle: FT_HANDLE, lpdwComPortNumber: LPLONG) -> FT_STATUS;","highlight_start":38,"highlight_end":47}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_HANDLE` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:21:38\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m21\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_GetComPortNumber(ftHandle: FT_HANDLE, lpdwComPortNumber: LPLONG) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPLONG` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":707,"byte_end":713,"line_start":21,"line_end":21,"column_start":68,"column_end":74,"is_primary":true,"text":[{"text":" fn FT_GetComPortNumber(ftHandle: FT_HANDLE, lpdwComPortNumber: LPLONG) -> FT_STATUS;","highlight_start":68,"highlight_end":74}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPLONG` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:21:68\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m21\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_GetComPortNumber(ftHandle: FT_HANDLE, lpdwComPortNumber: LPLONG) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_STATUS` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":718,"byte_end":727,"line_start":21,"line_end":21,"column_start":79,"column_end":88,"is_primary":true,"text":[{"text":" fn FT_GetComPortNumber(ftHandle: FT_HANDLE, lpdwComPortNumber: LPLONG) -> FT_STATUS;","highlight_start":79,"highlight_end":88}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_STATUS` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:21:79\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m21\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_GetComPortNumber(ftHandle: FT_HANDLE, lpdwComPortNumber: LPLONG) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `int` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":758,"byte_end":761,"line_start":22,"line_end":22,"column_start":30,"column_end":33,"is_primary":true,"text":[{"text":" fn FT_Open(deviceNumber: int, pHandle: *mut FT_HANDLE) -> FT_STATUS;","highlight_start":30,"highlight_end":33}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `int` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:22:30\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m22\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_Open(deviceNumber: int, pHandle: *mut FT_HANDLE) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_HANDLE` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":777,"byte_end":786,"line_start":22,"line_end":22,"column_start":49,"column_end":58,"is_primary":true,"text":[{"text":" fn FT_Open(deviceNumber: int, pHandle: *mut FT_HANDLE) -> FT_STATUS;","highlight_start":49,"highlight_end":58}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_HANDLE` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:22:49\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m22\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_Open(deviceNumber: int, pHandle: *mut FT_HANDLE) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_STATUS` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":791,"byte_end":800,"line_start":22,"line_end":22,"column_start":63,"column_end":72,"is_primary":true,"text":[{"text":" fn FT_Open(deviceNumber: int, pHandle: *mut FT_HANDLE) -> FT_STATUS;","highlight_start":63,"highlight_end":72}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_STATUS` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:22:63\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m22\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m fn FT_Open(deviceNumber: int, pHandle: *mut FT_HANDLE) -> FT_STATUS;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `DWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":928,"byte_end":933,"line_start":30,"line_end":30,"column_start":27,"column_end":32,"is_primary":true,"text":[{"text":" let device_count: DWORD = 0;","highlight_start":27,"highlight_end":32}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `DWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:30:27\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m30\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m let device_count: DWORD = 0;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find function, tuple struct or tuple variant `FT_CreateDeviceInfoList` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n fn bar() {\n Self; // error: unresolved name `Self`\n }\n}\n\n// or:\n\nlet x = unknown_variable; // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":1082,"byte_end":1105,"line_start":32,"line_end":32,"column_start":31,"column_end":54,"is_primary":true,"text":[{"text":" let result = unsafe { FT_CreateDeviceInfoList(&device_count as *const _ as LPDWORD) };","highlight_start":31,"highlight_end":54}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"possible candidate is found in another module, you can import it into scope","code":null,"level":"help","spans":[{"file_name":"src\\lib.rs","byte_start":846,"byte_end":846,"line_start":28,"line_end":28,"column_start":5,"column_end":5,"is_primary":true,"text":[{"text":" fn it_works() {","highlight_start":5,"highlight_end":5}],"label":null,"suggested_replacement":"use crate::FT_CreateDeviceInfoList;\n\n","suggestion_applicability":"Unspecified","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0425]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find function, tuple struct or tuple variant `FT_CreateDeviceInfoList` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:32:31\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m32\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m let result = unsafe { FT_CreateDeviceInfoList(&device_count as *const _ as LPDWORD) };\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14mhelp\u001b[0m\u001b[0m: possible candidate is found in another module, you can import it into scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m28\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m use crate::FT_CreateDeviceInfoList;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPDWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":1135,"byte_end":1142,"line_start":32,"line_end":32,"column_start":84,"column_end":91,"is_primary":true,"text":[{"text":" let result = unsafe { FT_CreateDeviceInfoList(&device_count as *const _ as LPDWORD) };","highlight_start":84,"highlight_end":91}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPDWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:32:84\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m32\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m let result = unsafe { FT_CreateDeviceInfoList(&device_count as *const _ as LPDWORD) };\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find struct, variant or union type `FT_DEVICE_LIST_INFO_NODE` in this scope","code":{"code":"E0422","explanation":"You are trying to use an identifier that is either undefined or not a struct.\nErroneous code example:\n\n```compile_fail,E0422\nfn main () {\n let x = Foo { x: 1, y: 2 };\n}\n```\n\nIn this case, `Foo` is undefined, so it inherently isn't anything, and\ndefinitely not a struct.\n\n```compile_fail\nfn main () {\n let foo = 1;\n let x = foo { x: 1, y: 2 };\n}\n```\n\nIn this case, `foo` is defined, but is not a struct, so Rust can't use it as\none.\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":1443,"byte_end":1467,"line_start":42,"line_end":42,"column_start":13,"column_end":37,"is_primary":true,"text":[{"text":" FT_DEVICE_LIST_INFO_NODE {","highlight_start":13,"highlight_end":37}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0422]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find struct, variant or union type `FT_DEVICE_LIST_INFO_NODE` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:42:13\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m42\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m FT_DEVICE_LIST_INFO_NODE {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `FT_HANDLE` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":1678,"byte_end":1687,"line_start":49,"line_end":49,"column_start":32,"column_end":41,"is_primary":true,"text":[{"text":" ftHandle: 0 as FT_HANDLE,","highlight_start":32,"highlight_end":41}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `FT_HANDLE` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:49:32\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m49\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m ftHandle: 0 as FT_HANDLE,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"cannot find function, tuple struct or tuple variant `FT_GetDeviceInfoList` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n fn bar() {\n Self; // error: unresolved name `Self`\n }\n}\n\n// or:\n\nlet x = unknown_variable; // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":1758,"byte_end":1778,"line_start":54,"line_end":54,"column_start":13,"column_end":33,"is_primary":true,"text":[{"text":" FT_GetDeviceInfoList(dev_info.as_mut_ptr(), &device_count as *const _ as LPDWORD)","highlight_start":13,"highlight_end":33}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"possible candidate is found in another module, you can import it into scope","code":null,"level":"help","spans":[{"file_name":"src\\lib.rs","byte_start":846,"byte_end":846,"line_start":28,"line_end":28,"column_start":5,"column_end":5,"is_primary":true,"text":[{"text":" fn it_works() {","highlight_start":5,"highlight_end":5}],"label":null,"suggested_replacement":"use crate::FT_GetDeviceInfoList;\n\n","suggestion_applicability":"Unspecified","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0425]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find function, tuple struct or tuple variant `FT_GetDeviceInfoList` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:54:13\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m54\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m FT_GetDeviceInfoList(dev_info.as_mut_ptr(), &device_count as *const _ as LPDWORD)\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^^^^^^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14mhelp\u001b[0m\u001b[0m: possible candidate is found in another module, you can import it into scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m28\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m use crate::FT_GetDeviceInfoList;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\n"}
|
||||
{"message":"cannot find type `LPDWORD` in this scope","code":{"code":"E0412","explanation":"The type name used is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo<T>(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"},"level":"error","spans":[{"file_name":"src\\lib.rs","byte_start":1831,"byte_end":1838,"line_start":54,"line_end":54,"column_start":86,"column_end":93,"is_primary":true,"text":[{"text":" FT_GetDeviceInfoList(dev_info.as_mut_ptr(), &device_count as *const _ as LPDWORD)","highlight_start":86,"highlight_end":93}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: cannot find type `LPDWORD` in this scope\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\lib.rs:54:86\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m54\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m FT_GetDeviceInfoList(dev_info.as_mut_ptr(), &device_count as *const _ as LPDWORD)\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m\n\n"}
|
||||
{"message":"aborting due to 33 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: aborting due to 33 previous errors\u001b[0m\n\n"}
|
||||
{"message":"Some errors have detailed explanations: E0412, E0422, E0425, E0433.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;15mSome errors have detailed explanations: E0412, E0422, E0425, E0433.\u001b[0m\n"}
|
||||
{"message":"For more information about an error, try `rustc --explain E0412`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;15mFor more information about an error, try `rustc --explain E0412`.\u001b[0m\n"}
|
Binary file not shown.
@ -0,0 +1 @@
|
||||
This file has an mtime of when this was started.
|
@ -0,0 +1 @@
|
||||
aa5759010a88769c
|
@ -0,0 +1 @@
|
||||
{"rustc":13421301608916057402,"features":"[]","target":11924813428260860161,"profile":14996655781355331481,"path":10872709659218687626,"deps":[[2693066915275761720,"winapi",false,14289487232430214174],[9924424717942368762,"build_script_build",false,1376035238852711626]],"local":[{"CheckDepInfo":{"dep_info":"debug\\.fingerprint\\ftdi-vcp-sys-7dfd3debbf10b458\\dep-lib-ftdi_vcp_sys-7dfd3debbf10b458"}}],"rustflags":[],"metadata":8199227496823213954}
|
@ -0,0 +1 @@
|
||||
ca543c5ac2a81813
|
@ -0,0 +1 @@
|
||||
{"rustc":13421301608916057402,"features":"","target":0,"profile":0,"path":0,"deps":[[9924424717942368762,"build_script_build",false,4372853867711248231]],"local":[{"Precalculated":"13227858539.099377000s (D:\\Code\\ftdi-prog\\ftdi-vcp-sys\\src\\lib.rs)"}],"rustflags":[],"metadata":0}
|