Re[2]: Сервер (TDI),BSOD при конекте...
От: Zoya_Pobeda  
Дата: 31.01.07 08:35
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>Не могли бы Вы подробно указать место, где происходит BSOD? Я могу предположить, что это происходит в ф. TDISrvEventConnect, а ее код вы не привели.


Да собственно как я понимаю стандартная комбинация...


NTSTATUS
TDISrvEventConnect(
                   PVOID                pEventCtx,    // Event context.
                   LONG                 lnRmtAddr,    // Buffer length.
                   PVOID                pRmtClnTA,    // Buffer (transport address of remote client).
                   LONG                 lnUserData,   // Length of user data buffer.
                   PVOID                pUserData,    // User data buffer.
                   LONG                 lnOptions,    // Length of options.
                   PVOID                pOptions,     // Options buffer.
                   CONNECTION_CONTEXT * ppConnCtx,    // Output connection context.
                   PIRP               * ppIrp         // Output Irp address.
                  )
{
    pTDIClnConn                    pLclConn = (pTDIClnConn)pEventCtx;
    pTDIClientExtension            pDevExt = pLclConn->pDevExt;  
    PTDI_CONNECTION_INFORMATION    pClientConn = pLclConn->pClientConnInfo;
    PTA_IP_ADDRESS                pClientConnInfo = (PTA_IP_ADDRESS)pClientConn->RemoteAddress;           
    PTA_IP_ADDRESS                pTAAddrIp = (PTA_IP_ADDRESS)pRmtClnTA;                  

    pClientConnInfo->Address[0].Address[0].in_addr = pTAAddrIp->Address[0].Address[0].in_addr;   
    
    pClientConnInfo->Address[0].Address[0].sin_port = pTAAddrIp->Address[0].Address[0].sin_port;   
   

    TdiBuildAccept(pDevExt->pIrpAccept,                  
                    pDevExt->pTcpDevObj,
                    pLclConn->pConnFileObj,
                    TDIClnIoCompRtnAcc,                   
                    pDevExt,                              
                    pClientConn,                         
                    NULL
                    );

    IoSetNextIrpStackLocation(pDevExt->pIrpAccept);      

    *ppIrp = pDevExt->pIrpAccept;                        

    *ppConnCtx = (CONNECTION_CONTEXT)pLclConn;           
                                                     



    return STATUS_MORE_PROCESSING_REQUIRED;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.