0xC00000BB (STATUS_NOT_SUPPORTED) when trying to load NetAdapterCx (rtcx21) driver as BOOT_START

Hi all,

I'm running into an issue on Windows 11, build 26100.1742. This problem did not occur on an older build (22000.194).

I'm trying to load a NetAdapterCx-based network driver (rtcx21.sys, Realtek 2.5G) as BOOT_START (Start = 0), but I've hit a roadblock while trying to resolve its dependencies.

Here are the steps I've taken and the debugging results:

Step 1: Set rtcx21.sys to BOOT_START

  • I changed the Start type for rtcx21.sys to 0.

  • On boot, rtcx21 failed to initialize with 0xC000003A (STATUS_OBJECT_PATH_NOT_FOUND).

  • The FxStubBindClasses log confirmed it failed to bind to the NetAdapterCx class.

Step 2: Set NetAdapterCx.sys to BOOT_START

  • I changed the Start type for NetAdapterCx.sys to 0.

  • Now, NetAdapterCx itself fails with 0xC000003A or 0xC0000034.

  • Debugging showed a call stack from NetAdapterCx!DriverEntry -> ... -> NDIS!LoadDriver, which was trying to dynamically load ExecutionContext.sys. This failed, presumably because the file system isn't available at the BOOT_START phase.

Step 3: Set ExecutionContext.sys to BOOT_START

  • I also changed the Start type for ExecutionContext.sys to 0.

  • Now, ExecutionContext.sys fails to load; its DriverEntry returns 0xC00000BB (STATUS_NOT_SUPPORTED).

  • As a result of ExecutionContext failing to load, NetAdapterCx also fails in a chain reaction, returning 0xC0000034 (STATUS_OBJECT_NAME_NOT_FOUND).

Step 4: Debugging the 0xC00000BB failure

  • I attached a debugger to find out why ExecutionContext.sys was returning STATUS_NOT_SUPPORTED.

  • I observed the following call stack:

    1. ExecutionContext!DriverEntry

    2. NDIS!KLoaderRegisterModule

    3. NDIS!KLoader::RegisterModule

    4. NDIS!KLoader::FindModuleByGuidLocked

  • It appears that when ExecutionContext!DriverEntry calls NDIS!KLoaderRegisterModule, the NDIS KLoader itself is returning 0xC00000BB.


My Questions

My guess is that the NDIS KLoader subsystem itself does not support being run at the BOOT_START phase on build 26100.1742.

  1. Is the NetAdapterCx stack and its dependencies (NDIS KLoader, ExecutionContext) fundamentally incompatible with BOOT_START?

  2. If so, what is the recommended approach for performing network I/O during the BOOT_START phase (for a custom boot scenario, not kdnic)?

  3. Does anyone know what changed between build 22000 and 26100 that might have introduced this BOOT_START incompatibility?

Any advice would be greatly appreciated. Thanks.