@@ -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
0 commit comments