Вопрос толкования документации IOCP - неоднозначность владения буфером

Поскольку я не являюсь носителем английского языка, я мог бы что-то упустить, так что, возможно, кто-то здесь знает лучше меня.

Взято изWSASendОбсуждение в MSDN:

lpBuffers [in]

Указатель на массив структур WSABUF. Каждая структура WSABUF содержит указатель на буфер и длину буфера в байтах. Для приложения Winsock после вызова функции WSASendсистема владеет этими буферами, и приложение может не получить к ним доступ, Этот массив должен оставаться действительным в течение всей операции отправки.

Хорошо, вы видите жирный текст? Это неясное место!

Я могу подумать о двух переводах для этой строки (может быть что-то еще, вы называете это):
Перевод 1 -«буферы» относятся к структуре OVERLAPPED что я передаю эту функцию при вызове. Я могу снова использовать объект только при получении уведомления о его завершении.
Перевод 2 -«буферы» относятся к фактическим буферамте, с данными, которые я отправляю. Если объект WSABUF указывает на один буфер, то я не могу коснуться этого буфера, пока операция не будет завершена.

Кто-нибудь может сказать, как правильно интерпретировать эту строку?

И ..... Если ответ второй - как бы вы решили?
Потому что для меня это означает, что для каждого отправляемого мною данных / буфера я должен сохранить его копию на стороне отправителя - таким образом, имея МНОГИЕ «ожидающие» буферы (разных размеров) в приложении с высоким трафиком, которое действительно происходит повредить "масштабируемость".

Заявление 1:
В дополнение к вышеприведенному абзацу («И ....») я подумал, что IOCP копирует данные для отправки в свой собственный буфер и отправляет оттуда, если вы не установитеSO_SNDBUF в ноль.

Заявление 2:
Я использую стековые буферы (вы знаете, что-то вродеchar cBuff[1024]; в теле функции - если перевод на основной вопрос является вторым вариантом (то есть буферы должны оставаться такими, какими они являются до завершения отправки), тогда ... это действительно приводит к серьезным ошибкам! Можете ли вы придумать способ решить эту проблему? (Я знаю, я спросил это другими словами выше).

Ответы на вопрос(1)

Ваш ответ на вопрос