Я пытаюсь реализовать механизм нулевого копирования, то есть функцию, противоположную TransmitFile()
API.
Но я не знаю, как зарегистрировать буферы в ядре. Ниже приведены подробности того, что я хочу сделать для реализации нулевого копирования:
Мы получим большие данные с сервера в нашем клиентском буфере, у меня также есть сомнения, что данные о погоде будут поступать в сокетный буфер (клиентский) или сначала они попадут в буфер NIC, пожалуйста, удалите это сомнение также.
Теперь из буфера сокета я хочу скопировать данные непосредственно в буфер ядра, а затем сохранить файл на диске, не обращаясь к системным вызовам чтения и записи, т.е. без переключения контекстов.
Данные должны быть перемещены непосредственно в буфер ядра только внутри пространства ядра.
Есть ли какой-либо API или какой-либо метод для достижения этой цели? Любые другие предложения?
Сокеты находятся на TCP / IP Connection.
К сожалению, API для получения не существует. Но вы можете попробовать ZwWrite ().
Других решений пока нет …