Test Objective
Verify that the IntelAvbFilter driver installs and operates correctly on Windows 10 (version 1809+) and Windows 11, using only documented NDIS 6.50+ APIs, passes Windows Hardware Lab Kit (HLK) tests, and supports UEFI Secure Boot.
Traceability
Test Type
- Type: Compatibility Test (Platform Validation)
- Level: System Test (driver + OS)
- Priority: P0 (Critical) - Platform requirement
- Execution: Manual (OS matrix testing) + Automated (HLK)
Test Environment
Windows Versions (Test Matrix):
- Windows 10 version 1809 (October 2018) - Minimum supported
- Windows 10 version 22H2 (latest)
- Windows 11 21H2 (first release)
- Windows 11 23H2 (latest)
Hardware:
- Intel I210/I225 NIC (PCIe)
- UEFI Secure Boot enabled system
- x64 architecture only
Tools:
- Windows Driver Kit (WDK) 10.0.17763.0+
- Windows Hardware Lab Kit (HLK) for Windows 10/11
- DevCon.exe (driver installation)
- Driver Verifier (runtime validation)
Prerequisites
- Driver signed with EV certificate (required for Secure Boot)
- INF file configured for Windows 10 1809+ (
TargetOSVersion = 10.0.17763)
- NDIS 6.50+ APIs used exclusively
- x64 build only (no x86 or ARM64)
Test Procedure
Test Case 1: Install on Windows 10 1809 (Minimum Version)
Steps:
- Boot Windows 10 version 1809 (build 17763)
- Verify OS version:
winver
- Install driver:
devcon.exe install IntelAvbFilter.inf
- Check installation status:
sc query IntelAvbFilter
Expected Results:
- ✅ Driver installs without errors
- ✅ Service state: RUNNING
- ✅ Device Manager shows no warnings
- ✅ All IOCTLs functional (PHC query, TAS/CBS config)
Verification:
# Check Windows version
$osVersion = (Get-WmiObject Win32_OperatingSystem).Version
if ($osVersion -lt "10.0.17763") {
throw "❌ Windows version too old: $osVersion"
}
# Install driver
devcon.exe install IntelAvbFilter.inf "PCI\VEN_8086&DEV_15F2" # I225 example
# Verify service running
$service = Get-Service IntelAvbFilter -ErrorAction SilentlyContinue
if ($service.Status -ne "Running") {
throw "❌ Driver not running"
}
Write-Host "✅ Driver installed on Windows 10 1809"
Test Case 2: Install on Windows 11 23H2 (Latest)
Steps:
- Boot Windows 11 version 23H2
- Verify OS version:
winver
- Install driver (same as Test Case 1)
- Verify all features functional
Expected Results:
- ✅ Driver installs without errors
- ✅ All features work (no API deprecation issues)
- ✅ No compatibility warnings in Event Viewer
Test Case 3: UEFI Secure Boot Compatibility
Steps:
- Enable UEFI Secure Boot in BIOS
- Boot Windows 10/11
- Verify Secure Boot status:
Confirm-SecureBootUEFI
- Install driver (must be EV-signed)
Expected Results:
- ✅ Secure Boot remains enabled after driver installation
- ✅ Driver loads successfully
- ✅ No tamper warnings
Verification:
# Check Secure Boot status
if (-not (Confirm-SecureBootUEFI)) {
throw "❌ Secure Boot not enabled"
}
# Install driver
devcon.exe install IntelAvbFilter.inf "PCI\VEN_8086&DEV_15F2"
# Verify Secure Boot still enabled (driver didn't disable it)
if (-not (Confirm-SecureBootUEFI)) {
throw "❌ Secure Boot disabled after driver install"
}
Write-Host "✅ Driver compatible with Secure Boot"
Test Case 4: NDIS 6.50+ API Usage Validation
Steps:
- Parse driver source code for NDIS API calls
- Cross-reference with NDIS 6.50 documentation (WDK)
- Verify no deprecated or undocumented APIs used
Expected Results:
- ✅ All NDIS APIs ≥ version 6.50
- ✅ No
NdisXxx calls from NDIS <6.50
- ✅ Static assertion in code:
C_ASSERT(NDIS_MINIPORT_VERSION >= NDIS_MINIPORT_VERSION_650)
Code Review:
// filter.c - Driver entry point
C_ASSERT(NDIS_MINIPORT_VERSION >= NDIS_MINIPORT_VERSION_650);
NDIS_STATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) {
NDIS_FILTER_DRIVER_CHARACTERISTICS characteristics = {0};
characteristics.Header.Type = NDIS_OBJECT_TYPE_FILTER_DRIVER_CHARACTERISTICS;
characteristics.Header.Size = NDIS_SIZEOF_FILTER_DRIVER_CHARACTERISTICS_REVISION_3; // NDIS 6.50
characteristics.Header.Revision = NDIS_FILTER_CHARACTERISTICS_REVISION_3;
// ... (rest of initialization)
}
Static Analysis (PowerShell):
# Scan source for deprecated NDIS APIs
$deprecatedApis = @(
"NdisAllocateMemory", # Deprecated in NDIS 6.0
"NdisFreeMemory", # Deprecated in NDIS 6.0
"NdisScheduleWorkItem" # Deprecated in NDIS 6.20
)
$sourceFiles = Get-ChildItem -Path "*.c" -Recurse
foreach ($api in $deprecatedApis) {
$matches = Select-String -Path $sourceFiles -Pattern $api
if ($matches.Count -gt 0) {
Write-Host "❌ Deprecated API used: $api"
$matches | ForEach-Object { Write-Host " $($_.Path):$($_.LineNumber)" }
exit 1
}
}
Write-Host "✅ No deprecated NDIS APIs found"
Test Case 5: Windows Hardware Lab Kit (HLK) Tests
Steps:
- Set up Windows HLK environment (controller + test client)
- Install driver on test client
- Run HLK tests for NDIS filters:
- NDIS Filter Driver Tests
- Device Fundamentals Tests
- Static Driver Verifier (SDV)
- Code Analysis (PREfast)
Expected Results:
- ✅ All HLK tests pass
- ✅ Zero failures or warnings
- ✅ Driver eligible for Windows Hardware Compatibility Program
HLK Test Suite (Key Tests):
DF - PNP (disable and enable) with IO Before and After
DF - Sleep with IO Before and After
NDIS - Filter Driver Tests
Static Driver Verifier (SDV)
Execution:
1. Install Windows HLK Studio on controller
2. Install HLK Client on test machine
3. HLK Studio → Select Test Client → Select NIC
4. Run "NDIS Filter Driver" test package
5. Wait for results (may take hours)
6. Export results (XML)
Test Case 6: Driver Verifier Stress Test
Steps:
- Enable Driver Verifier for IntelAvbFilter.sys:
verifier /standard /driver IntelAvbFilter.sys
- Reboot system
- Run stress test (continuous IOCTL calls, network traffic)
- Monitor for crashes (5+ hours)
Expected Results:
- ✅ No BSODs during stress test
- ✅ No Driver Verifier violations
- ✅ System remains stable
Stress Test Script (PowerShell):
# Run for 5 hours
$endTime = (Get-Date).AddHours(5)
while ((Get-Date) -lt $endTime) {
# PHC query (1000 iterations)
for ($i = 0; $i -lt 1000; $i++) {
Invoke-AvbIoctl -Code 0x9C40A010 -Output PHC_TIME_QUERY
}
# Generate network traffic
ping -n 100 192.168.1.1 > $null
Start-Sleep -Seconds 10
}
Write-Host "✅ Stress test completed (no crashes)"
Test Case 7: Upgrade Path (Windows 10 → 11)
Steps:
- Install driver on Windows 10 22H2
- Upgrade OS to Windows 11 23H2
- Verify driver still functional after upgrade
Expected Results:
- ✅ Driver survives OS upgrade
- ✅ No reinstallation required
- ✅ All features still functional
Test Case 8: Clean Uninstall
Steps:
- Install driver
- Uninstall via Device Manager or
devcon.exe remove
- Verify no leftover files or registry keys
Expected Results:
- ✅ Driver files removed from
C:\Windows\System32\drivers\
- ✅ Service removed (not in
sc query)
- ✅ No orphaned registry keys under
HKLM\SYSTEM\CurrentControlSet\Services\IntelAvbFilter
Verification (PowerShell):
# Uninstall
devcon.exe remove "PCI\VEN_8086&DEV_15F2"
# Check files removed
if (Test-Path "C:\Windows\System32\drivers\IntelAvbFilter.sys") {
throw "❌ Driver file not removed"
}
# Check service removed
$service = Get-Service IntelAvbFilter -ErrorAction SilentlyContinue
if ($service) {
throw "❌ Service not removed"
}
Write-Host "✅ Clean uninstall verified"
Test Case 9: Multi-NIC Configuration
Steps:
- Install 2+ Intel I210/I225 NICs in system
- Install driver (binds to all compatible NICs)
- Verify each NIC independently functional
Expected Results:
- ✅ Driver binds to all compatible NICs
- ✅ Each NIC has separate PHC instance
- ✅ No conflicts between NICs
Test Case 10: Event Viewer Compatibility Warnings
Steps:
- Install driver on Windows 10 1809 and Windows 11 23H2
- Check Event Viewer → Windows Logs → System
- Filter by Source: "Microsoft-Windows-Kernel-PnP"
Expected Results:
- ✅ No "compatibility mode" warnings
- ✅ No API deprecation warnings
- ✅ No "unsigned driver" warnings (with EV signature)
Pass/Fail Criteria
Pass Criteria
- ✅ Driver installs on Windows 10 1809 (Test Case 1)
- ✅ Driver installs on Windows 11 23H2 (Test Case 2)
- ✅ Secure Boot compatible (Test Case 3)
- ✅ NDIS 6.50+ APIs only (Test Case 4)
- ✅ All HLK tests pass (Test Case 5)
- ✅ No Driver Verifier violations (Test Case 6)
- ✅ Survives OS upgrade (Test Case 7)
- ✅ Clean uninstall (Test Case 8)
- ✅ Multi-NIC support (Test Case 9)
- ✅ No Event Viewer warnings (Test Case 10)
Fail Criteria
- ❌ Driver fails to install on Windows 10 1809
- ❌ Driver fails to install on Windows 11
- ❌ Secure Boot incompatible (driver rejected)
- ❌ Deprecated NDIS APIs used
- ❌ HLK test failures
- ❌ Driver Verifier violations (BSOD)
- ❌ Driver lost after OS upgrade
- ❌ Leftover files/registry keys after uninstall
- ❌ Compatibility warnings in Event Viewer
Test Data
Windows Versions (Test Matrix):
- Windows 10 1809 (build 17763) - Minimum
- Windows 10 22H2 (build 19045) - Latest
- Windows 11 21H2 (build 22000) - First W11
- Windows 11 23H2 (build 22631) - Latest
NDIS Version:
- Minimum: NDIS 6.50 (Windows 10 1809)
- Driver uses: NDIS 6.50+ APIs only
Expected Event Logs:
- INFO: "IntelAvbFilter driver started successfully" (Source: IntelAvbFilter)
- No WARN or ERROR events related to compatibility
Automation
CI/CD Matrix Testing (GitHub Actions):
name: Windows Compatibility
on: [push, pull_request]
strategy:
matrix:
os:
- windows-2019 # Windows 10 1809
- windows-2022 # Windows Server 2022 (similar to Win11)
jobs:
test-install:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Check OS Version
run: |
$osVersion = (Get-WmiObject Win32_OperatingSystem).Version
Write-Host "OS Version: $osVersion"
- name: Build Driver
run: msbuild IntelAvbFilter.sln /p:Configuration=Release /p:Platform=x64
- name: Install Driver (Test Mode)
run: |
bcdedit /set TESTSIGNING ON # Enable test mode
devcon.exe install x64/Release/IntelAvbFilter.inf "ROOT\IntelAvbFilter"
- name: Verify Installation
run: |
$service = Get-Service IntelAvbFilter -ErrorAction SilentlyContinue
if (-not $service) {
throw "❌ Driver not installed"
}
Write-Host "✅ Driver installed on ${{ matrix.os }}"
Dependencies
- Requires: Driver built with WDK 10.0.17763.0+
- Requires: EV code signing certificate (for Secure Boot)
- Blocks: Production deployment (must pass HLK)
Notes
- Windows 10 LTSC: Also supported (uses same WDK version)
- ARM64: Not currently supported (driver is x64 only)
- HLK: Required for Windows Hardware Compatibility Program
- Secure Boot: EV certificate mandatory (Standard Code Signing insufficient)
- Driver Verifier: Should be part of regular CI testing
Related Issues
Version: 1.0
Created: 2025-12-19
Author: Standards Compliance Team
Test Objective
Verify that the IntelAvbFilter driver installs and operates correctly on Windows 10 (version 1809+) and Windows 11, using only documented NDIS 6.50+ APIs, passes Windows Hardware Lab Kit (HLK) tests, and supports UEFI Secure Boot.
Traceability
Test Type
Test Environment
Windows Versions (Test Matrix):
Hardware:
Tools:
Prerequisites
TargetOSVersion = 10.0.17763)Test Procedure
Test Case 1: Install on Windows 10 1809 (Minimum Version)
Steps:
winverdevcon.exe install IntelAvbFilter.infsc query IntelAvbFilterExpected Results:
Verification:
Test Case 2: Install on Windows 11 23H2 (Latest)
Steps:
winverExpected Results:
Test Case 3: UEFI Secure Boot Compatibility
Steps:
Confirm-SecureBootUEFIExpected Results:
Verification:
Test Case 4: NDIS 6.50+ API Usage Validation
Steps:
Expected Results:
NdisXxxcalls from NDIS <6.50C_ASSERT(NDIS_MINIPORT_VERSION >= NDIS_MINIPORT_VERSION_650)Code Review:
Static Analysis (PowerShell):
Test Case 5: Windows Hardware Lab Kit (HLK) Tests
Steps:
Expected Results:
HLK Test Suite (Key Tests):
DF - PNP (disable and enable) with IO Before and AfterDF - Sleep with IO Before and AfterNDIS - Filter Driver TestsStatic Driver Verifier (SDV)Execution:
Test Case 6: Driver Verifier Stress Test
Steps:
Expected Results:
Stress Test Script (PowerShell):
Test Case 7: Upgrade Path (Windows 10 → 11)
Steps:
Expected Results:
Test Case 8: Clean Uninstall
Steps:
devcon.exe removeExpected Results:
C:\Windows\System32\drivers\sc query)HKLM\SYSTEM\CurrentControlSet\Services\IntelAvbFilterVerification (PowerShell):
Test Case 9: Multi-NIC Configuration
Steps:
Expected Results:
Test Case 10: Event Viewer Compatibility Warnings
Steps:
Expected Results:
Pass/Fail Criteria
Pass Criteria
Fail Criteria
Test Data
Windows Versions (Test Matrix):
NDIS Version:
Expected Event Logs:
Automation
CI/CD Matrix Testing (GitHub Actions):
Dependencies
Notes
Related Issues
Version: 1.0
Created: 2025-12-19
Author: Standards Compliance Team