Функция получения нулевой копии

Я пытаюсь реализовать механизм нулевого копирования, то есть функцию, противоположную TransmitFile() API.

Но я не знаю, как зарегистрировать буферы в ядре. Ниже приведены подробности того, что я хочу сделать для реализации нулевого копирования:

  1. Мы получим большие данные с сервера в нашем клиентском буфере, у меня также есть сомнения, что данные о погоде будут поступать в сокетный буфер (клиентский) или сначала они попадут в буфер NIC, пожалуйста, удалите это сомнение также.

  2. Теперь из буфера сокета я хочу скопировать данные непосредственно в буфер ядра, а затем сохранить файл на диске, не обращаясь к системным вызовам чтения и записи, т.е. без переключения контекстов.

  3. Данные должны быть перемещены непосредственно в буфер ядра только внутри пространства ядра.

Есть ли какой-либо API или какой-либо метод для достижения этой цели? Любые другие предложения?

Сокеты находятся на TCP / IP Connection.

1

Решение

К сожалению, API для получения не существует. Но вы можете попробовать ZwWrite ().

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]