Здравствуйте, TarasCo, Вы писали:
Извиняюсь за долгое молчание — грипповала
Может я вас не правильно поняла...,но что то у меня что странное твориться стало...
Windbg-ер у меня запустиь не удалось,что бы посмотреть что бы проанализировать дамп-файл,Verifiry тоже какойто кривой выбираю драйвер для ставлю его на проверку,перезагружаюсь...а он не проверяется...Вообщем какаято я не везучая

Но зато я по немногу осваеваю софтАйс, и вот что я выяснела...BSOD происходит уже после выхода и ф-ии TDIClnIoCompRtnAcc, а там уже АСМ и пнять что там происходит я непойму
TarasCo правильно ли я вас поняла?
NTSTATUS
TDISrvEventConnect(
PVOID pEventCtx,
LONG lnRmtAddr,
PVOID pRmtClnTA,
LONG lnUserData,
PVOID pUserData,
LONG lnOptions,
PVOID pOptions,
CONNECTION_CONTEXT * ppConnCtx,
PIRP * ppIrp
)
{
pTDIClnConn pLclConn = (pTDIClnConn)pEventCtx; pTDIClientExtension pTDIDevExt = (pTDIClientExtension)pLclConn->pTDIDevExt;
P_DEVICE_EXTENSION pDevExt = (P_DEVICE_EXTENSION)pTDIDevExt->pDevExt;
PDEVICE_OBJECT pTDIDeviceObject;
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;
pTDIDeviceObject = IoGetRelatedDeviceObject(
pLclConn->pConnFileObj
);
pLclConn->pIrpAccept = IoAllocateIrp(pTDIDeviceObject->StackSize, FALSE);
TdiBuildAccept(pLclConn->pIrpAccept,
pTDIDevExt->pTcpDevObj,
pLclConn->pConnFileObj,
TDIClnIoCompRtnAcc,
pTDIDevExt,
pClientConn,
NULL
);
IoSetNextIrpStackLocation(pLclConn->pIrpAccept);
*ppIrp = pLclConn->pIrpAccept;
*ppConnCtx = (CONNECTION_CONTEXT)pLclConn;
KdPrint(("%S --> function CONNECT",&pDevExt->symbolicLinkName.Buffer[12]));
return STATUS_MORE_PROCESSING_REQUIRED;
}
NTSTATUS
TDIClnIoCompRtnAcc(
PDEVICE_OBJECT pDevObj,
PIRP pIrp,
PVOID pCtx
)
{
pTDIClientExtension pDevExt = (pTDIClientExtension)pCtx;
pTDIClnConn pLclConn = (pTDIClnConn)pDevExt->pTDIClnConnArr;
IoFreeIrp( pLclConn->pIrpAccept );
pLclConn->pIrpAccept = NULL;
if (STATUS_SUCCESS!= pIrp->IoStatus.Status)
{
KdPrint((".TDIClnIoCompRtnAcc: IoStatus.Status = 0x%08x, IoStatus.Information = 0x%08x\n",
pIrp->IoStatus.Status, pIrp->IoStatus.Information));
}
return STATUS_SUCCESS;
}