Home › Forums › Discussions › General › TDI FILTER driver › Reply To: TDI FILTER driver
July 14, 2007 at 7:33 pm
#6318
А как int3 может выдавать BSOD если это отладочная команда???
Убрал все int3 и действительно BSOD не возникает, но в WinDBG пишется:
Illegal instruction - code c000001d (!!! second chance !!!)
80e3bcd4 f04a lock dec edx
потом делаю “g”, и опять пишется тоже самое.. а страница на виртуальной машине так и не открывается..
Может это из за того что я как-то неправильно передаю параметры в оригинальную функцию? Делаю я так:
typedef NTSTATUS (*OLDCLIENTEVENTRECEIVE)(IN PVOID,
IN CONNECTION_CONTEXT,
IN ULONG,
IN ULONG,
IN ULONG,
OUT ULONG,
IN PVOID,
OUT PIRP);
NTSTATUS HookedClientEventReceive(IN PVOID TdiEventContext,
IN CONNECTION_CONTEXT ConnectionContext,
IN ULONG ReceiveFlags,
IN ULONG BytesIndicated,
IN ULONG BytesAvailable,
OUT ULONG *BytesTaken,
IN PVOID Tsdu,
OUT PIRP *IoRequestPacket)
{
PCLIENTEVENTRECEIVECONTEXT pBlockFromPagedLookasideList;
OLDCLIENTEVENTRECEIVE OldClientEventReceive;
...
pBlockFromPagedLookasideList = TdiEventContext;
OldClientEventReceive = pBlockFromPagedLookasideList->EventHandler;
...
return OldClientEventReceive(pBlockFromPagedLookasideList->EventContext,
ConnectionContext,
ReceiveFlags,
BytesIndicated,
BytesAvailable,
*BytesTaken,
Tsdu,
*IoRequestPacket);
}