Reply To: TDI FILTER driver

Home Forums Discussions General TDI FILTER driver Reply To: TDI FILTER driver

#6318
Dmitry_177
Participant

    А как 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);
    
    }