Причиной является объявление структуры PSID. У него есть член под названием SubAuthority
это определяется следующим образом:
SubAuthority: массив [0..ANYSIZE_ARRAY - 1] из DWORD;
ANYSIZE_ARRAY - это константа, которая установлена в 1, и, таким образом, диапазон массива составляет от 0 до 0.
Это конструкция c, преобразованная в Delphi, но Delphi не знает этого. Структура создается безопасно, выделяя достаточно места, чтобы в массиве было больше одного DWORD.
Это исключение случается довольно часто, если вы используете структуры переменных c в Delphi с активированной ошибкой проверки диапазона.
Однако в качестве решения вы можете отключить переключатель для JWSCL, открыв файл jwscl.inc и добавив {$ R-}.
AFAIK переключатель действует только до конца каждого блока, а затем используется значение по умолчанию. Файл inc включен в каждый файл jwscl.