Closed kouzhudong closed 1 year ago
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.7.4
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
C:\Program Files\Microsoft Visual Studio\2022\Enterprise>cd /d D:\code\rust\code\windows\windows-drivers-rs
D:\code\rust\code\windows\windows-drivers-rs>cargo make
[cargo-make] INFO - cargo make 0.37.1
[cargo-make] INFO - Calling cargo metadata to extract project info
[cargo-make] INFO - Cargo metadata done
[cargo-make] INFO - Build File: Makefile.toml
[cargo-make] INFO - Task: default
[cargo-make] INFO - Profile: development
[cargo-make] INFO - Running Task: legacy-migration
[cargo-make] INFO - Running Task: workspace
D:\code\rust\code\windows\windows-drivers-rs
[cargo-make][1] INFO - Calling cargo metadata to extract project info
[cargo-make][1] INFO - Cargo metadata done
[cargo-make][1] INFO - Project: sample-kmdf-driver
[cargo-make][1] INFO - Build File: Makefile.toml
[cargo-make][1] INFO - Task: default
[cargo-make][1] INFO - Profile: development
[cargo-make][1] INFO - Skipping Task: legacy-migration
[cargo-make][1] INFO - Execute Command: "cargo" "build" "--profile" "dev"
Compiling wdk-sys v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\wdk-sys)
error: failed to run custom build command for `wdk-sys v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\wdk-sys)`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.
Caused by:
process didn't exit successfully: `D:\code\rust\code\windows\windows-drivers-rs\target\debug\build\wdk-sys-86a04ece13d95311\build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'WDKContentRoot should be able to be detected. Ensure that the WDK is installed, or that the environment setup scripts in the eWDK have been run.', crates\wdk-build\src\lib.rs:111:64
stack backtrace:
0: 0x7ff72798cfac - std::sys_common::backtrace::_print::impl$0::fmt
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\sys_common\backtrace.rs:44
1: 0x7ff7279af44b - core::fmt::rt::Argument::fmt
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\core\src\fmt\rt.rs:138
2: 0x7ff7279af44b - core::fmt::write
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\core\src\fmt\mod.rs:1094
3: 0x7ff727987b3f - std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\io\mod.rs:1714
4: 0x7ff72798cd5b - std::sys_common::backtrace::_print
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\sys_common\backtrace.rs:47
5: 0x7ff72798cd5b - std::sys_common::backtrace::print
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\sys_common\backtrace.rs:34
6: 0x7ff72798f82a - std::panicking::default_hook::closure$1
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\panicking.rs:269
7: 0x7ff72798f47f - std::panicking::default_hook
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\panicking.rs:288
8: 0x7ff72798fede - std::panicking::rust_panic_with_hook
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\panicking.rs:705
9: 0x7ff72798fdcd - std::panicking::begin_panic_handler::closure$0
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\panicking.rs:597
10: 0x7ff72798dbf9 - std::sys_common::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\sys_common\backtrace.rs:151
11: 0x7ff72798fad0 - std::panicking::begin_panic_handler
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\panicking.rs:593
12: 0x7ff7279b8b95 - core::panicking::panic_fmt
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\core\src\panicking.rs:67
13: 0x7ff7279b8b52 - core::panicking::panic_display
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\core\src\panicking.rs:150
14: 0x7ff7279b8b52 - core::panicking::panic_str
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\core\src\panicking.rs:134
15: 0x7ff7279b8b52 - core::option::expect_failed
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\core\src\option.rs:1952
16: 0x7ff72742f0e3 - core::option::Option<T>::expect::h228f7ddc97874d6f
17: 0x7ff727429425 - <wdk_build::Config as core::default::Default>::default::h0a5c5c02d1374f4e
18: 0x7ff7273b2643 - std::io::IoSlice::advance_slices::h216178cef99393c7
19: 0x7ff7273b47fe - core::ops::function::FnOnce::call_once::h75341cf446c029df
20: 0x7ff7273b3258 - std::sys_common::backtrace::__rust_begin_short_backtrace::h28fa44d344e8d038
21: 0x7ff7273b4601 - std::rt::lang_start::{{closure}}::h77ae10578f59081c
22: 0x7ff7279823c8 - std::rt::lang_start_internal::closure$2
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\rt.rs:148
23: 0x7ff7279823c8 - std::panicking::try::do_call
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\panicking.rs:500
24: 0x7ff7279823c8 - std::panicking::try
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\panicking.rs:464
25: 0x7ff7279823c8 - std::panic::catch_unwind
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\panic.rs:142
26: 0x7ff7279823c8 - std::rt::lang_start_internal
at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library\std\src\rt.rs:148
27: 0x7ff7273b45d7 - std::rt::lang_start::h9b963597236e1259
28: 0x7ff7273b2e89 - main
29: 0x7ff7279b62d0 - invoke_main
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
30: 0x7ff7279b62d0 - __scrt_common_main_seh
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
31: 0x7ffa0dcd7344 - BaseThreadInitThunk
32: 0x7ffa0fc026b1 - RtlUserThreadStart
[cargo-make][1] ERROR - Error while executing command, exit code: 101
[cargo-make][1] WARN - Build Failed.
[cargo-make] ERROR - Error while running duckscript: Source: Unknown Line: 5 - Error while executing command, exit code: 1
[cargo-make] WARN - Build Failed.
D:\code\rust\code\windows\windows-drivers-rs>
Just loading the Visual Studio environment isn't enough, you need to load the WDK too. The environment variable WDKContentRoot
should exist and look something like C:\Program Files (x86)\Windows Kits\10
or wherever it is is installed on your system.
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.7.4
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
C:\Program Files\Microsoft Visual Studio\2022\Enterprise>cd /d D:\code\rust\code\windows\Windows-rust-driver-samples
D:\code\rust\code\windows\Windows-rust-driver-samples>cargo make
[cargo-make] INFO - cargo make 0.37.1
D:\code\rust\code\windows\Windows-rust-driver-samples>cd "D:\code\rust\code\windows\Windows-rust-driver-samples"
D:\code\rust\code\windows\Windows-rust-driver-samples>pwsh.exe -Command "if ($env:CARGO_MAKE_CRATE_IS_WORKSPACE) { return };$cargoMakeURI = 'https://raw.githubusercontent.com/microsoft/windows-drivers-rs/main/rust-driver-makefile.toml';New-Item -ItemType Directory .cargo-make-loadscripts -Force;Invoke-RestMethod -Method GET -Uri $CargoMakeURI -OutFile $env:CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY/.cargo-make-loadscripts/rust-driver-makefile.toml"
Could not resolve CoreCLR path. For more details, enable tracing by setting COREHOST_TRACE environment variable to 1
[cargo-make] ERROR - Error while executing command, exit code: -2147450745
[cargo-make] WARN - Build Failed.
D:\code\rust\code\windows\Windows-rust-driver-samples>
D:\code\rust\code\windows\windows-drivers-rs>cargo make
[cargo-make] INFO - cargo make 0.37.1
[cargo-make] INFO - Calling cargo metadata to extract project info
[cargo-make] INFO - Cargo metadata done
[cargo-make] INFO - Build File: Makefile.toml
[cargo-make] INFO - Task: default
[cargo-make] INFO - Profile: development
[cargo-make] INFO - Running Task: legacy-migration
[cargo-make] INFO - Running Task: workspace
D:\code\rust\code\windows\windows-drivers-rs
[cargo-make][1] INFO - Calling cargo metadata to extract project info
[cargo-make][1] INFO - Cargo metadata done
[cargo-make][1] INFO - Project: sample-kmdf-driver
[cargo-make][1] INFO - Build File: Makefile.toml
[cargo-make][1] INFO - Task: default
[cargo-make][1] INFO - Profile: development
[cargo-make][1] INFO - Skipping Task: legacy-migration
[cargo-make][1] INFO - Execute Command: "cargo" "build" "--profile" "dev"
Compiling proc-macro2 v1.0.66
Compiling unicode-ident v1.0.11
Compiling windows_x86_64_msvc v0.48.5
Compiling winapi v0.3.9
Compiling once_cell v1.18.0
Compiling glob v0.3.1
Compiling lazy_static v1.4.0
Compiling libc v0.2.147
Compiling rustversion v1.0.14
Compiling prettyplease v0.2.15
Compiling rustix v0.38.13
Compiling serde v1.0.188
Compiling thiserror v1.0.48
Compiling windows-targets v0.48.5
Compiling regex-syntax v0.7.5
Compiling windows-sys v0.48.0
Compiling clang-sys v1.6.1
Compiling bitflags v2.4.0
Compiling minimal-lexical v0.2.1
Compiling memchr v2.6.3
Compiling quote v1.0.33
Compiling log v0.4.20
Compiling syn v2.0.32
Compiling nom v7.1.3
Compiling bindgen v0.68.1
Compiling either v1.9.0
Compiling libloading v0.7.4
Compiling serde_json v1.0.106
Compiling regex-automata v0.3.8
Compiling errno v0.3.3
Compiling home v0.5.5
Compiling which v4.4.2
Compiling cexpr v0.6.0
Compiling wdk-build v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\wdk-build)
Compiling windows-core v0.51.1
Compiling regex v1.9.5
Compiling itoa v1.0.9
Compiling lazycell v1.3.0
Compiling ryu v1.0.15
Compiling rustc-hash v1.1.0
Compiling peeking_take_while v0.1.2
Compiling shlex v1.2.0
Compiling windows v0.51.1
Compiling cfg-if v1.0.0
Compiling tracing-core v0.1.31
Compiling overload v0.1.1
Compiling tracing-log v0.1.3
Compiling nu-ansi-term v0.46.0
Compiling thread_local v1.1.7
Compiling sharded-slab v0.1.4
Compiling smallvec v1.11.0
Compiling spin v0.5.2
Compiling wdk-panic v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\wdk-panic)
Compiling static_assertions v1.1.0
Compiling tracing-subscriber v0.3.17
Compiling thiserror-impl v1.0.48
Compiling serde_derive v1.0.188
Compiling wdk-macros v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\wdk-macros)
Compiling wdk-sys v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\wdk-sys)
Compiling wdk v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\wdk)
Compiling sample-kmdf-driver v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver)
Compiling wdk-alloc v0.1.0 (D:\code\rust\code\windows\windows-drivers-rs\crates\wdk-alloc)
Finished dev [unoptimized + debuginfo] target(s) in 4m 10s
[cargo-make][1] INFO - Running Task: rename-dll-to-sys
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>cd "D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver"
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>echo "D:\code\rust\code\windows\windows-drivers-rs\target\debug"
"D:\code\rust\code\windows\windows-drivers-rs\target\debug"
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>cd "D:\code\rust\code\windows\windows-drivers-rs\target\debug"
D:\code\rust\code\windows\windows-drivers-rs\target\debug>mkdir package
D:\code\rust\code\windows\windows-drivers-rs\target\debug>if exist package\sample_kmdf_driver.sys (del package\sample_kmdf_driver.sys )
D:\code\rust\code\windows\windows-drivers-rs\target\debug>rename sample_kmdf_driver.dll sample_kmdf_driver.sys
D:\code\rust\code\windows\windows-drivers-rs\target\debug>copy sample_kmdf_driver.sys package\sample_kmdf_driver.sys
已复制 1 个文件。
[cargo-make][1] INFO - Running Task: stampinf
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>cd "D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver"
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>copy "D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver\sample_kmdf_driver.inx" "D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\sample_kmdf_driver.inf"
已复制 1 个文件。
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>stampinf.exe -f "D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\sample_kmdf_driver.inf" -d * -a amd64 -c sample_kmdf_driver.cat -v * -k 1.33 -n
Stamping D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\sample_kmdf_driver.inf
Stamping [Version] section with DriverVer=09/25/2023,22.19.13.324
stampinf: found Section-Line 6: [Version]
stampinf: In Version section
stampinf: found Section-Line 13: [DestinationDirs]
stampinf: adding DriverVer= at end of Version section
stampinf: REPLACE Line 12:
stampinf: WITH Line 12: DriverVer = 09/25/2023,22.19.13.324
stampinf: changed file size by 74
Stamping [Version] section with CatalogFile=sample_kmdf_driver.cat
stampinf: found Section-Line 6: [Version]
stampinf: In Version section
stampinf: found Section-Line 14: [DestinationDirs]
stampinf: adding CatalogFile= at end of Version section
stampinf: REPLACE Line 13:
stampinf: WITH Line 13: CatalogFile = sample_kmdf_driver.cat
stampinf: changed file size by 76
stampinf: looking for [Manufacturer] section...
stampinf: found Section-Line 6: [Version]
stampinf: found Section-Line 15: [DestinationDirs]
stampinf: found Section-Line 18: [SourceDisksNames]
stampinf: found Section-Line 21: [SourceDisksFiles]
stampinf: found Section-Line 26: [ClassInstall32]
stampinf: found Section-Line 29: [SampleClassReg]
stampinf: found Section-Line 35: [Manufacturer]
stampinf: In Manufacturer section
stampinf: Line 36: %StdMfg%=Standard,NT$ARCH$.10.0...16299
stampinf: REPLACE Line 36: $ARCH$.10.0...16299
stampinf: WITH Line 36: amd64.10.0...16299
stampinf: changed file size by -2
stampinf: found Section-Line 38: [Standard.NT$ARCH$.10.0...16299]
stampinf: found end of [Manufacturer] section
stampinf: looking for decorated section names...
stampinf: found Section-Line 6: [Version]
stampinf: found Section-Line 15: [DestinationDirs]
stampinf: found Section-Line 18: [SourceDisksNames]
stampinf: found Section-Line 21: [SourceDisksFiles]
stampinf: found Section-Line 26: [ClassInstall32]
stampinf: found Section-Line 29: [SampleClassReg]
stampinf: found Section-Line 35: [Manufacturer]
stampinf: found Section-Line 38: [Standard.NT$ARCH$.10.0...16299]
stampinf: REPLACE Line 38: $ARCH$.10.0...16299]
stampinf: WITH Line 38: amd64.10.0...16299]
stampinf: changed file size by -2
stampinf: found Section-Line 41: [SampleKMDFDevice.NT$ARCH$]
stampinf: REPLACE Line 41: $ARCH$]
stampinf: WITH Line 41: amd64]
stampinf: changed file size by -2
stampinf: found Section-Line 44: [Drivers_Dir]
stampinf: found Section-Line 48: [SampleKMDFDevice.NT$ARCH$.Services]
stampinf: REPLACE Line 48: $ARCH$.Services]
stampinf: WITH Line 48: amd64.Services]
stampinf: changed file size by -2
stampinf: found Section-Line 51: [Sample_KMDF_Service_Install]
stampinf: found Section-Line 59: [Strings]
stampinf: looking for WDF version strings
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
$KMDFVERSION$ = 1.33 $KMDFCOINSTALLERVERSION$ = 01033
[cargo-make][1] INFO - Running Task: inf2cat
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>cd "D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver"
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>inf2cat.exe /driver:D:\code\rust\code\windows\windows-drivers-rs\target\debug\package /os:10_NI_X64,10_VB_X64 /uselocaltime /verbose
Processing directory (D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\) file (sample_kmdf_driver.inf)
Processing directory (D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\) file (sample_kmdf_driver.sys)
Parsing INF: D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\sample_kmdf_driver.inf
Finished parsing INFs
Processing INF: D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\sample_kmdf_driver.inf
Finished processing INFs
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Signability test complete.
Errors:
None
Warnings:
None
Catalog generation complete.
D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\sample_kmdf_driver.cat
[cargo-make][1] INFO - Running Task: infverif
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>cd "D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver"
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>"\x64\infverif.exe" /v /w D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\sample_kmdf_driver.inf /msft
系统找不到指定的路径。
[cargo-make][1] ERROR - Error while executing command, exit code: 1
[cargo-make][1] WARN - Build Failed.
[cargo-make] ERROR - Error while running duckscript: Source: Unknown Line: 5 - Error while executing command, exit code: 1
[cargo-make] WARN - Build Failed.
D:\code\rust\code\windows\windows-drivers-rs>
编译成功了:
D:\code\rust\code\windows\windows-drivers-rs>dir /a /s *.sys
驱动器 D 中的卷没有标签。
卷的序列号是 F2D4-19D5
D:\code\rust\code\windows\windows-drivers-rs\target\debug 的目录
2023/09/25 22:19 69,632 sample_kmdf_driver.sys
1 个文件 69,632 字节
D:\code\rust\code\windows\windows-drivers-rs\target\debug\package 的目录
2023/09/25 22:19 69,632 sample_kmdf_driver.sys
1 个文件 69,632 字节
所列文件总数:
2 个文件 139,264 字节
0 个目录 469,106,626,560 可用字节
签名失败:
D:\code\rust\code\windows\windows-drivers-rs\crates\sample-kmdf-driver>"\x64\infverif.exe" /v /w D:\code\rust\code\windows\windows-drivers-rs\target\debug\package\sample_kmdf_driver.inf /msft
系统找不到指定的路径。
[cargo-make][1] ERROR - Error while executing command, exit code: 1
[cargo-make][1] WARN - Build Failed.
[cargo-make] ERROR - Error while running duckscript: Source: Unknown Line: 5 - Error while executing command, exit code: 1
[cargo-make] WARN - Build Failed.