Здравствуйте, TarasCo, Вы писали:
B>>Последующие попытки подключения дают Irp->IoStatus.Status == STATUS_CONNECTION_INVALID (0xC000023A).
TC>Это говорит о том, что в запросы TDI_SEND или TDI_RECEIVE вы суете неправильные файлы. Это должны быть KERNEL_SOCKET::TransportDeviceFile.Object и эти файлы должны быть ассоцированы с локальным адресом ( должен быть выполнен запрос TDI_ASSOCIATE_ADDRESS )
Да, так и происходит. Клиентская часть модуля, включая функции Connect(), Send() и Receive(), работает успешно. В них передаётся именно KERNEL_SOCKET::TransportDeviceFile.Object, и файл локального адреса с подключением ассоциирован. Ошибка, по всей видимости, кроется именно в приведённом коде Listen(), ClientEventConnect() и Accept(). Правильно ли я понимаю механизм? Нет ли у Вас образца работающего кода, реализующего эту функциональность, который можно опубликовать?