Skip to content

Commit d4f2eba

Browse files
.CAT signing adjustments.
1 parent 54d3113 commit d4f2eba

File tree

3 files changed

+98
-38
lines changed

3 files changed

+98
-38
lines changed

.github/workflows/VAD-compile-and-sign.yml

Lines changed: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -104,59 +104,88 @@ jobs:
104104
Write-Host "WDK bin directory structure:"
105105
Get-ChildItem "C:\Program Files (x86)\Windows Kits\10\bin" -Recurse -Depth 3 | Where-Object { $_.Name -like "*inf*" -or $_.FullName -like "*\x86\*" }
106106
107-
# Build x64 with full validation
107+
# Build x64 with proper catalog generation
108108
- name: Build driver (x64)
109109
if: matrix.platform == 'x64'
110110
run: |
111111
cd "Virtual-Audio-Driver (Latest Stable)"
112-
msbuild "VirtualAudioDriver.sln" /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }}
112+
msbuild "VirtualAudioDriver.sln" /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} /p:SignMode=Off /p:EnableInf2Cat=true
113113
114-
# Build ARM64 with validation completely disabled
114+
# Build ARM64 with limited validation but proper catalog generation
115115
- name: Build driver (ARM64)
116116
if: matrix.platform == 'ARM64'
117117
run: |
118-
# Skip validation completely for ARM64 builds
119118
cd "Virtual-Audio-Driver (Latest Stable)"
120-
msbuild "VirtualAudioDriver.sln" /p:Configuration=${{ matrix.configuration }} /p:Platform=ARM64 /p:RunCodeAnalysis=false /p:DriverTargetPlatform=Universal /p:UseInfVerifierEx=false /p:ValidateDrivers=false /p:StampInf=false /p:ApiValidator_Enable=false /p:InfVerif_Enable=false /p:DisableVerification=true /p:SignMode=Off /p:ApiValidator_ExcludedTargets=ARM64 /p:EnableInf2cat=false
119+
msbuild "VirtualAudioDriver.sln" /p:Configuration=${{ matrix.configuration }} /p:Platform=ARM64 /p:RunCodeAnalysis=false /p:DriverTargetPlatform=Universal /p:UseInfVerifierEx=false /p:ValidateDrivers=false /p:StampInf=false /p:ApiValidator_Enable=false /p:InfVerif_Enable=false /p:DisableVerification=true /p:SignMode=Off /p:ApiValidator_ExcludedTargets=ARM64 /p:EnableInf2Cat=true
121120
122-
# Manual deployment steps for ARM64
123-
- name: Create ARM64 Package Directory Structure
124-
if: matrix.platform == 'ARM64'
121+
# Generate catalog file using inf2cat
122+
- name: Generate Catalog File
125123
run: |
126-
# Create package directory structure
127124
$packageDir = "Virtual-Audio-Driver (Latest Stable)\${{ matrix.platform }}\${{ matrix.configuration }}\package"
125+
$infFile = "$packageDir\VirtualAudioDriver.inf"
126+
127+
# Ensure package directory exists
128128
if (-not (Test-Path $packageDir)) {
129129
New-Item -Path $packageDir -ItemType Directory -Force
130-
Write-Host "Created directory: $packageDir"
131130
}
132131
133-
# Copy SYS file if it exists
132+
# Try to find inf2cat.exe in the WDK installation
133+
$wdkPaths = @(
134+
"C:\Program Files (x86)\Windows Kits\10\bin\x86",
135+
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86",
136+
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86"
137+
)
138+
139+
$inf2catPath = $null
140+
foreach ($path in $wdkPaths) {
141+
$testPath = "$path\inf2cat.exe"
142+
if (Test-Path $testPath) {
143+
$inf2catPath = $testPath
144+
break
145+
}
146+
}
147+
148+
if ($inf2catPath -and (Test-Path $infFile)) {
149+
Write-Host "Found inf2cat at: $inf2catPath"
150+
$osArch = if (${{ matrix.platform }} -eq "ARM64") { "10_ARM64" } else { "10_x64" }
151+
& $inf2catPath /driver:"$packageDir" /os:"$osArch" /verbose
152+
Write-Host "Catalog generation completed"
153+
} else {
154+
Write-Host "WARNING: inf2cat.exe not found or INF file missing"
155+
}
156+
157+
# Additional package preparation steps
158+
- name: Complete Package Preparation
159+
run: |
160+
$packageDir = "Virtual-Audio-Driver (Latest Stable)\${{ matrix.platform }}\${{ matrix.configuration }}\package"
161+
162+
# Ensure package directory has all required files
134163
$sourceDir = "Virtual-Audio-Driver (Latest Stable)\Source\Main\${{ matrix.platform }}\${{ matrix.configuration }}"
164+
165+
# Copy SYS file if it exists
135166
if (Test-Path "$sourceDir\VirtualAudioDriver.sys") {
136167
Copy-Item "$sourceDir\VirtualAudioDriver.sys" "$packageDir\" -Force
137168
Write-Host "Copied VirtualAudioDriver.sys to package directory"
138-
} else {
139-
Write-Host "WARNING: VirtualAudioDriver.sys not found in $sourceDir"
140169
}
141170
142171
# Copy INF file if it exists, or from x64 build
143-
$infSource = "Virtual-Audio-Driver (Latest Stable)\Source\Main\${{ matrix.platform }}\${{ matrix.configuration }}\VirtualAudioDriver.inf"
172+
$infSource = "$sourceDir\VirtualAudioDriver.inf"
144173
$x64InfSource = "Virtual-Audio-Driver (Latest Stable)\Source\Main\x64\${{ matrix.configuration }}\VirtualAudioDriver.inf"
145174
146175
if (Test-Path $infSource) {
147176
Copy-Item $infSource "$packageDir\" -Force
148-
Write-Host "Copied VirtualAudioDriver.inf from ARM64 build"
177+
Write-Host "Copied VirtualAudioDriver.inf from ${{ matrix.platform }} build"
149178
} elseif (Test-Path $x64InfSource) {
150179
Copy-Item $x64InfSource "$packageDir\" -Force
151180
Write-Host "Copied VirtualAudioDriver.inf from x64 build"
152-
} else {
153-
Write-Host "WARNING: VirtualAudioDriver.inf not found"
154181
}
155182
156-
# Create placeholder CAT file if needed
183+
# Check if catalog file was generated, create placeholder if not
157184
if (-not (Test-Path "$packageDir\virtualaudiodriver.cat")) {
185+
Write-Host "WARNING: Catalog file not generated, creating placeholder"
158186
[System.IO.File]::WriteAllBytes("$packageDir\virtualaudiodriver.cat", [byte[]]@(0x00))
159-
Write-Host "Created placeholder virtualaudiodriver.cat file"
187+
} else {
188+
Write-Host "Catalog file exists: $packageDir\virtualaudiodriver.cat"
160189
}
161190
162191
- name: List build directory

.github/workflows/VAD-compile.yml

Lines changed: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -104,59 +104,88 @@ jobs:
104104
Write-Host "WDK bin directory structure:"
105105
Get-ChildItem "C:\Program Files (x86)\Windows Kits\10\bin" -Recurse -Depth 3 | Where-Object { $_.Name -like "*inf*" -or $_.FullName -like "*\x86\*" }
106106
107-
# Build x64 with full validation
107+
# Build x64 with proper catalog generation
108108
- name: Build driver (x64)
109109
if: matrix.platform == 'x64'
110110
run: |
111111
cd "Virtual-Audio-Driver (Latest Stable)"
112-
msbuild "VirtualAudioDriver.sln" /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }}
112+
msbuild "VirtualAudioDriver.sln" /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} /p:SignMode=Off /p:EnableInf2Cat=true
113113
114-
# Build ARM64 with validation completely disabled
114+
# Build ARM64 with limited validation but proper catalog generation
115115
- name: Build driver (ARM64)
116116
if: matrix.platform == 'ARM64'
117117
run: |
118-
# Skip validation completely for ARM64 builds
119118
cd "Virtual-Audio-Driver (Latest Stable)"
120-
msbuild "VirtualAudioDriver.sln" /p:Configuration=${{ matrix.configuration }} /p:Platform=ARM64 /p:RunCodeAnalysis=false /p:DriverTargetPlatform=Universal /p:UseInfVerifierEx=false /p:ValidateDrivers=false /p:StampInf=false /p:ApiValidator_Enable=false /p:InfVerif_Enable=false /p:DisableVerification=true /p:SignMode=Off /p:ApiValidator_ExcludedTargets=ARM64 /p:EnableInf2cat=false
119+
msbuild "VirtualAudioDriver.sln" /p:Configuration=${{ matrix.configuration }} /p:Platform=ARM64 /p:RunCodeAnalysis=false /p:DriverTargetPlatform=Universal /p:UseInfVerifierEx=false /p:ValidateDrivers=false /p:StampInf=false /p:ApiValidator_Enable=false /p:InfVerif_Enable=false /p:DisableVerification=true /p:SignMode=Off /p:ApiValidator_ExcludedTargets=ARM64 /p:EnableInf2Cat=true
121120
122-
# Manual deployment steps for ARM64
123-
- name: Create ARM64 Package Directory Structure
124-
if: matrix.platform == 'ARM64'
121+
# Generate catalog file using inf2cat
122+
- name: Generate Catalog File
125123
run: |
126-
# Create package directory structure
127124
$packageDir = "Virtual-Audio-Driver (Latest Stable)\${{ matrix.platform }}\${{ matrix.configuration }}\package"
125+
$infFile = "$packageDir\VirtualAudioDriver.inf"
126+
127+
# Ensure package directory exists
128128
if (-not (Test-Path $packageDir)) {
129129
New-Item -Path $packageDir -ItemType Directory -Force
130-
Write-Host "Created directory: $packageDir"
131130
}
132131
133-
# Copy SYS file if it exists
132+
# Try to find inf2cat.exe in the WDK installation
133+
$wdkPaths = @(
134+
"C:\Program Files (x86)\Windows Kits\10\bin\x86",
135+
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86",
136+
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86"
137+
)
138+
139+
$inf2catPath = $null
140+
foreach ($path in $wdkPaths) {
141+
$testPath = "$path\inf2cat.exe"
142+
if (Test-Path $testPath) {
143+
$inf2catPath = $testPath
144+
break
145+
}
146+
}
147+
148+
if ($inf2catPath -and (Test-Path $infFile)) {
149+
Write-Host "Found inf2cat at: $inf2catPath"
150+
$osArch = if (${{ matrix.platform }} -eq "ARM64") { "10_ARM64" } else { "10_x64" }
151+
& $inf2catPath /driver:"$packageDir" /os:"$osArch" /verbose
152+
Write-Host "Catalog generation completed"
153+
} else {
154+
Write-Host "WARNING: inf2cat.exe not found or INF file missing"
155+
}
156+
157+
# Additional package preparation steps
158+
- name: Complete Package Preparation
159+
run: |
160+
$packageDir = "Virtual-Audio-Driver (Latest Stable)\${{ matrix.platform }}\${{ matrix.configuration }}\package"
161+
162+
# Ensure package directory has all required files
134163
$sourceDir = "Virtual-Audio-Driver (Latest Stable)\Source\Main\${{ matrix.platform }}\${{ matrix.configuration }}"
164+
165+
# Copy SYS file if it exists
135166
if (Test-Path "$sourceDir\VirtualAudioDriver.sys") {
136167
Copy-Item "$sourceDir\VirtualAudioDriver.sys" "$packageDir\" -Force
137168
Write-Host "Copied VirtualAudioDriver.sys to package directory"
138-
} else {
139-
Write-Host "WARNING: VirtualAudioDriver.sys not found in $sourceDir"
140169
}
141170
142171
# Copy INF file if it exists, or from x64 build
143-
$infSource = "Virtual-Audio-Driver (Latest Stable)\Source\Main\${{ matrix.platform }}\${{ matrix.configuration }}\VirtualAudioDriver.inf"
172+
$infSource = "$sourceDir\VirtualAudioDriver.inf"
144173
$x64InfSource = "Virtual-Audio-Driver (Latest Stable)\Source\Main\x64\${{ matrix.configuration }}\VirtualAudioDriver.inf"
145174
146175
if (Test-Path $infSource) {
147176
Copy-Item $infSource "$packageDir\" -Force
148-
Write-Host "Copied VirtualAudioDriver.inf from ARM64 build"
177+
Write-Host "Copied VirtualAudioDriver.inf from ${{ matrix.platform }} build"
149178
} elseif (Test-Path $x64InfSource) {
150179
Copy-Item $x64InfSource "$packageDir\" -Force
151180
Write-Host "Copied VirtualAudioDriver.inf from x64 build"
152-
} else {
153-
Write-Host "WARNING: VirtualAudioDriver.inf not found"
154181
}
155182
156-
# Create placeholder CAT file if needed
183+
# Check if catalog file was generated, create placeholder if not
157184
if (-not (Test-Path "$packageDir\virtualaudiodriver.cat")) {
185+
Write-Host "WARNING: Catalog file not generated, creating placeholder"
158186
[System.IO.File]::WriteAllBytes("$packageDir\virtualaudiodriver.cat", [byte[]]@(0x00))
159-
Write-Host "Created placeholder virtualaudiodriver.cat file"
187+
} else {
188+
Write-Host "Catalog file exists: $packageDir\virtualaudiodriver.cat"
160189
}
161190
162191
- name: List build directory

Virtual-Audio-Driver (Latest Stable)/Package/package.VcxProj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@
7575
<VerifyProjectOutput>True</VerifyProjectOutput>
7676
<VerifyDrivers />
7777
<VerifyFlags>133563</VerifyFlags>
78+
<Inf2CatUseLocalTime>true</Inf2CatUseLocalTime>
79+
<EnableInf2cat>true</EnableInf2cat>
7880
</PropertyGroup>
7981
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
8082
<DriverSign>

0 commit comments

Comments
 (0)