Bug в netbt.sys???
От: TarasCo  
Дата: 18.01.05 15:45
Оценка:
netbt.sys при инициализации открывает на "прослушку" 445 TCP порт. Для этого устройству \Device\tcp высылается управляющий код TDI_SET_EVENT_HANDLER, где Event = TDI_EVENT_CONNECT. Так вот, если на это запрос вернуть STATUS_UNSUCCESS (или другой ошибочный), драйвер netbt.sys упадет c page fault ом. Я довольно долго сидел в отладчике, получил примерно такой ход событий:

NTSTATUS CallDriver( ... )
{


ntStatus = IoCallDriver(...);
if ( !NT_SUCCESS(ntStatus) )
{
ZwClose( );
ObDereferenceObject( );
}

.....

return ntStatus;
}


ntStatus = CallDriver(...);
ObDereferenceObject — вот тут делается дереференс от 0 — далее обращение в ObDereferenceObject к адресу 0 — 0x18,
и естественно page fault

Это на w2k, XPSP1
Не верится, что такая детская ошибка в коде стандартного драйвера. Если кто занимался TDI если нетрудно гляньте, что у Вас произойдет в подобной ситуации?
Да пребудет с тобою сила
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.