Правильно будет сказать, что WinXP переходит в режим ядра тем способом, который поддерживает процессор ( либо sysenter, либо int 2e ). В w2k в код ntdll был жестко зашит вызов int 2e, в XP — это регулируется специальной областью памяти процесса ( видимо, чтоб не плодить версии ntdll ), которую топикстартер не совсем удачно дизассемблировал.