Problem with RtlGetElementGenericTableAvl

Good day!

I want to report about issue, that i have discovered while using RtlXXXGenericTableAvl functions.
The problem is that in some cases RtlGetElementGenericTableAvl may return garbage even if you call it with valid arguments.

The link below contains test driver example that illustrates the problem. This is default minifilter driver with modified DriverEntry.
It makes few actions:

  1. initializes AVL-table
  2. inserts two unicode strings in it (L"SOFTWARE" and L"SYSTEM")
  3. traces table content after each insertion
  4. stops on breakpoint
  5. unloads with error STATUS_UNSUCCESSFUL

test source code

I used only debug driver version.

The result windbg trace:
kd> g
0 → 8CB13FF8
first second -10
0 → 8CB13FF8
1 → 00000010
0 → 8CB19FF8
1 → 8CB13FF8
first second -10
first second 0
first second 0
Break instruction exception - code 80000003 (first chance)