How to Fix WinDivert Driver Load Failures in Zapret: Common Issues and Solutions

WinDivert driver load failures in Zapret typically stem from missing driver files, conflicting services, antivirus interference, or unsigned drivers on Windows 7, all of which can be diagnosed and resolved using the built-in service.bat script.

The Flowseal/zapret-discord-youtube repository relies on the WinDivert kernel-mode driver to intercept and modify network traffic on Windows systems. When this driver fails to load, the entire bypass mechanism stops functioning. Understanding the root causes of these WinDivert driver load failures allows you to quickly restore connectivity using the diagnostic tools and fixes built into the repository.

Common WinDivert Driver Load Failures and Diagnostics

The service.bat script in the repository root contains specific checks for the most frequent failure modes, referencing actual system states and file paths.

Missing WinDivert64.sys Driver File

If the driver binary is absent from the bin directory, the service cannot initialize. In service.bat, lines 513-518 check for the existence of the .sys file and output a specific error message if it is missing.

if not exist "%BIN_PATH%\*.sys" (
    echo WinDivert64.sys file NOT found.
    echo Please check your installation.
)

To fix this, verify that bin/WinDivert64.sys exists in your installation folder. If the file is missing, re-extract the release archive or download the driver binary from the upstream bol-van/zapret-win-bundle repository.

Driver Already Loaded as a Windows Service

A previous instance or another application may have registered the "WinDivert" service, preventing new instances from loading the driver. The script detects this by querying the service status.

According to service.bat (lines 564-572), the script runs sc query "WinDivert" and checks if the state is RUNNING or STOP_PENDING. If detected, it warns the user and attempts automatic remediation.

To resolve this manually:

sc query "WinDivert"
sc stop "WinDivert"
sc delete "WinDivert"

After removal, rerun service.bat and select the install option to reload the driver cleanly.

Driver Stuck in STOP_PENDING State

This occurs when the driver is mid-shutdown, often caused by abrupt termination or conflicts with other network tools. The diagnostics in service.bat flag STOP_PENDING as a blocking state that prevents new service registration.

Run the built-in diagnostics via service.bat (option 10) to automatically detect and clear this state, or manually stop the service using the commands above and wait 10-30 seconds for the kernel to release the driver handle.

Antivirus or Security Software Quarantine

Security software frequently flags WinDivert as a potentially unwanted application (PUA) due to its packet interception capabilities. The README.md (lines 18-24) explicitly warns that antivirus engines may quarantine or delete WinDivert64.sys without warning.

If the driver file disappears after extraction or execution fails immediately after installation, check your antivirus quarantine logs. Add the entire zapret installation directory to your antivirus exclusion list, or temporarily disable PUA detection during installation.

Missing Digital Signature on Windows 7

Windows 7 requires valid driver signatures for kernel-mode drivers. The standard bundled driver may lack the necessary signature for this legacy OS. As documented in README.md (lines 31-34), users must replace the bundled binaries with signed versions.

Download the Windows 7-compatible files from the win7 folder of the upstream bundle:

curl -L -o bin\WinDivert.dll https://github.com/bol-van/zapret-win-bundle/raw/master/win7/WinDivert.dll
curl -L -o bin\WinDivert64.sys https://github.com/bol-van/zapret-win-bundle/raw/master/win7/WinDivert64.sys

Place these files in your local bin/ directory, overwriting the existing binaries.

Conflicting Third-Party Bypass Services

Other DPI circumvention tools like GoodbyeDPI, DiscordFix, or previous zapret instances may install competing WinDivert services. The service.bat script (lines 664-680) maintains a list of known conflicting services including GoodbyeDPI, discordfix_zapret, and winws1.

When you run the diagnostics option, the script enumerates these services and offers to automatically stop and delete them. Accepting this cleanup prevents driver contention.

How to Diagnose and Fix WinDivert Issues

The repository provides automated and manual remediation paths for driver issues.

Running Built-in Diagnostics with service.bat

The primary diagnostic tool is the service.bat script. Execute it and select option 10 (Run Diagnostics) to perform a comprehensive check:

service.bat
:: Select option 10 from the menu

This routine checks for:

  • Missing WinDivert64.sys in bin/
  • Existing WinDivert service states
  • Conflicting bypass services
  • File permissions

The script outputs specific failure messages tied to the code sections in service.bat and offers automatic fixes where possible.

Manually Stopping and Deleting the WinDivert Service

If automatic cleanup fails, manual intervention ensures complete removal:

sc stop "WinDivert"
timeout /t 5
sc delete "WinDivert"

Verify deletion with sc query "WinDivert", which should report "The specified service does not exist." Then reinstall via service.bat.

Replacing Driver Files for Windows 7 Compatibility

For Windows 7 systems encountering signature errors, replace both the DLL and SYS files in the bin directory with the signed variants from the upstream repository. This resolves the 0x800b0100 (certificate trust) or 0x8007001f (driver load) errors specific to Windows 7.

Summary

  • Missing driver files: Verify bin/WinDivert64.sys exists; re-extract if missing.
  • Service conflicts: Stop and delete existing "WinDivert" services using service.bat or manual sc commands.
  • STOP_PENDING states: Wait for kernel release or run diagnostics to force-clear the state.
  • Antivirus interference: Add the zapret folder to AV exclusions to prevent quarantine of WinDivert64.sys.
  • Windows 7 signatures: Replace bin/WinDivert.dll and bin/WinDivert64.sys with signed versions from the upstream win7 bundle.
  • Third-party conflicts: Remove competing services like GoodbyeDPI using the diagnostic menu in service.bat.

Frequently Asked Questions

Why does Zapret fail to start with "WinDivert64.sys file NOT found"?

This error occurs when the kernel driver binary is missing from the bin directory, as detected by the file existence check in service.bat (lines 513-518). Re-extract the release archive to ensure WinDivert64.sys and WinDivert.dll are present, or download them directly from the bol-van/zapret-win-bundle repository.

How do I know if another service is blocking the WinDivert driver?

Run service.bat and select Run Diagnostics (option 10). The script queries the service status via sc query "WinDivert" and checks for conflicting services like GoodbyeDPI (lines 564-572 and 664-680). If the output shows RUNNING, STOP_PENDING, or lists conflicting service names, another process is blocking the driver.

Can I run Zapret alongside GoodbyeDPI or other bypass tools?

No, these tools cannot run simultaneously because they compete for exclusive access to the WinDivert driver interface. The service.bat diagnostics detect conflicts with services like GoodbyeDPI and discordfix_zapret and can automatically remove them. You must stop and uninstall other DPI bypass tools before starting Zapret.

Why does Windows 7 require special driver files for Zapret?

Windows 7 enforces strict driver signature verification for kernel-mode drivers. The default bundled driver may lack the necessary signature chain for this OS version. As noted in README.md (lines 31-34), you must download signed replacements from the win7 directory of the upstream bundle to satisfy Windows 7's security requirements.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →