День добрый.Замучила такая вот проблемка. Есть кусок кода вызываемый из DriverEntry:
OBJECT_ATTRIBUTES oa;
  InitializeObjectAttributes(&oa, NULL, OBJ_KERNEL_HANDLE,
    NULL, NULL);
HANDLE hThread = NULL;
	st = PsCreateSystemThread(&hThread,
		THREAD_ALL_ACCESS,
		&oa,
		(HANDLE)-1,
		NULL,
		ThreadRoutine,
		(PVOID)pex);
	DbgPrint("System thread created: %x!",hThread);
	if(st==STATUS_SUCCESS)
	{
		DbgPrint("Referense thread object returns: %d",
		ObReferenceObjectByHandle(hThread, THREAD_ALL_ACCESS, NULL,
			KernelMode, (PVOID*) &pex->Thread, NULL));
		ZwClose(hThread);
	}
Тут я создаю системную нить и пытаюсь по хендлу получить указатель на объет нити, но ObReferenceObjectByHandle возвращает STATUS_SUCCESS, а pex->Thread устанавливает в 0. Перерыл по этому поводу кучу статей и прочей инфы, но ничего подобного нигде не видел. Помогоите разобраться пожалуйста, а то запарился в конец уже.. 

ЗЫ. Винда WinXp SP2, стоит касперский и файервол - мож они гадят?