Меню

Сбой функции ntcreatefile api эта ошибка никогда не должна возвращаться


Не запускается приложение в WinXP

От:

nekoriu

Россия

 
Дата:  18.11.20 11:57
Оценка:

Добрый день.

Пытаюсь сделать приложение для Windows XP. Но оно там не запускается. Выдается сообщение. «Сбой функции NtCreateFile API. Эта ошибка никогда не должна возвращаться приложению, она является заглушкой для применения во внутренних процедурах отображения ошибок: перенаправителя Windows Lan Manager.»

Мое приложение консольное, C++, не Net, должно выводить сообщение Hello World. В конфигурации VS Community 19, toolset v141_xp приложение выдает ошибку.

Та же ошибка в конфигураци VS Com 13, toolset v120_xp.

Что скажете?


Re: Не запускается приложение в WinXP

От:

a7d3

 
Дата:  18.11.20 12:19
Оценка:

3 (1)

Здравствуйте, nekoriu, Вы писали:

N>Что скажете?

А слинкована с рантаймом то статически?
Или охота на машину с WinXP тащить VS_redistribute


Re: Не запускается приложение в WinXP

От:

CaptainFlint

Россия

http://flint-inc.ru/
Дата:  18.11.20 12:31
Оценка:

Здравствуйте, nekoriu, Вы писали:

N>Пытаюсь сделать приложение для Windows XP. Но оно там не запускается. Выдается сообщение. «Сбой функции NtCreateFile API. Эта ошибка никогда не должна возвращаться приложению, она является заглушкой для применения во внутренних процедурах отображения ошибок: перенаправителя Windows Lan Manager.»

А какой сервис-пак? Кажется, бывали какие-то проблемы, если SP слишком старый, студийные тулсеты рассчитаны то ли на SP2, то ли на SP3, не помню точно.

Почему же, ё-моё, ты нигде не пишешь «ё»?


Re[2]: Не запускается приложение в WinXP

От:

nekoriu

Россия

 
Дата:  18.11.20 12:45
Оценка:

A>А слинкована с рантаймом то статически?
A>Или охота на машину с WinXP тащить VS_redistribute

Не знаю, где посмотреть как приложение слинковано. В windows 7 пришлось установить VC_redist для запуска приложения.

А как слинковать статически с рантаймом или слова какие ключевые?


Re[2]: Не запускается приложение в WinXP

От:

nekoriu

Россия

 
Дата:  18.11.20 12:48
Оценка:

CF>А какой сервис-пак? Кажется, бывали какие-то проблемы, если SP слишком старый, студийные тулсеты рассчитаны то ли на SP2, то ли на SP3, не помню точно.
SP3.


Re[3]: Не запускается приложение в WinXP

От:

a7d3

 
Дата:  18.11.20 13:41
Оценка:

2 (1)

Здравствуйте, nekoriu, Вы писали:

N>А как слинковать статически с рантаймом или слова какие ключевые?

«static link vc++ runtime»
https://helloacm.com/how-to-static-link-vc-runtime-in-visual-c/


Re[4]: Не запускается приложение в WinXP

От:

nekoriu

Россия

 
Дата:  18.11.20 13:46
Оценка:

-1

A>«static link vc++ runtime»
A>https://helloacm.com/how-to-static-link-vc-runtime-in-visual-c/

В моем проекте было указано /MD, райнтайм в виде dll.


Re[2]: Не запускается приложение в WinXP

От:

nekoriu

Россия

 
Дата:  18.11.20 14:43
Оценка:

+1

A>А слинкована с рантаймом то статически?
A>Или охота на машину с WinXP тащить VS_redistribute

Спасибо, заработало после установки vc_redist. Проблема была в том, что я ни каким способом не тащил рантайм для своего приложения. ОС вместо обычных слов, что не найдена какая-то библиотека, писала бред про ntCreateFile().


Re[3]: Не запускается приложение в WinXP

От:

qaz77

 
Дата:  18.11.20 16:34
Оценка:

+1

Здравствуйте, nekoriu, Вы писали:
N>SP3.

С toolset xp в sp3 должно работать. С sp2 и ниже — не будет.

Для независимости от установленных dll лучше статически CRT линковать.
Для этого в свойствах проекта на странице C/C++ Code Generation надо Runtime Library поставить /MT и /MTd вместо /MD и /MDd (для Release и Debug, соответственно).


Re[3]: Не запускается приложение в WinXP

От:

Евгений Музыченко

Франция

https://software.muzychenko.net/ru
Дата:  18.11.20 17:39
Оценка:

Здравствуйте, nekoriu, Вы писали:

N>ОС вместо обычных слов, что не найдена какая-то библиотека, писала бред про ntCreateFile().

Вы линковались с динамическим рантаймом (DLL) для новых версий VC++. В чистой XP такого нет — там бы Вы получили сообщение о невозможности загрузки DLL. Но в Вашей системе оказались какие-то DLL рантайма, которые подошли по именам, и что-то не срослось между тамошними служебными протоколами.

В норме такого быть не должно — MS давно уже делает именованные CRT DLLs (msvcrNNN.dll/msvcpNNN.dll). Подозреваю, что Вы (или кто-то другой) побаловались ручками, копируя и переименовывая DLL различных версий CRT.


Re: Не запускается приложение в WinXP

От:

morgot

 
Дата:  16.12.20 11:42
Оценка:

Здравствуйте, nekoriu, Вы писали:

Советую попробовать Pelles C, там никаких проблем с ХР нет. Или поставить Visual Studio 6, чтобы не играться с рантаймами.


Re[2]: Не запускается приложение в WinXP

От:

Евгений Музыченко

Франция

https://software.muzychenko.net/ru
Дата:  16.12.20 11:52
Оценка:

+2

Здравствуйте, morgot, Вы писали:

M>Советую попробовать Pelles C, там никаких проблем с ХР нет.

Их нет даже в VS 2019, если понимать, что на что завязано.

M>Или поставить Visual Studio 6, чтобы не играться с рантаймами.

Работать под VS 6 только ради того, чтобы собирать приложение с runtime DLL и не тащить ее с собой?


Re[3]: Не запускается приложение в WinXP

От:

morgot

 
Дата:  23.12.20 12:40
Оценка:

-1

Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Их нет даже в VS 2019, если понимать, что на что завязано.

В Pelles C проще.

M>>Или поставить Visual Studio 6, чтобы не играться с рантаймами.

ЕМ>Работать под VS 6 только ради того, чтобы собирать приложение с runtime DLL и не тащить ее с собой?

Только версия для ХР, тем более автор врядли пишет энтерпрайз.. Все равно, сейчас написание программы для ХР — и так огромный костыль с кучей if..else.


Re[4]: Не запускается приложение в WinXP

От:

Евгений Музыченко

Франция

https://software.muzychenko.net/ru
Дата:  23.12.20 13:42
Оценка:

Здравствуйте, morgot, Вы писали:

M>В Pelles C проще.

Я не имел дела с Pelles C, но не понимаю, что может быть проще указания в настройках минимальной версии Toolset’а и режима статического подключения CRT.

ЕМ>>Работать под VS 6 только ради того, чтобы собирать приложение с runtime DLL и не тащить ее с собой?


M>Только версия для ХР, тем более автор врядли пишет энтерпрайз..

Не понял смысла этой фразы. Можно ее расшифровать?

M>Все равно, сейчас написание программы для ХР — и так огромный костыль с кучей if..else.

Если писать на модном современном фреймворке — безусловно. Если писать на WinAPI/CRT, можно вообще нигде не проверять версию системы, если не требуется поддерживать функциональность, добавленную после XP.


Re[5]: Не запускается приложение в WinXP

От:

edton

 
Дата:  23.12.20 14:43
Оценка:

Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Если писать на модном современном фреймворке — безусловно. Если писать на WinAPI/CRT, можно вообще нигде не проверять версию системы, если не требуется поддерживать функциональность, добавленную после XP.

Всё так, есть правда функции помеченные как deprecated. Интересно есть примеры, чтобы угрозу реально привели в исполнение и такие функции в новых версиях Windows реально отсутствовали или просто возвращали код ошибки? Что-то сходу не могу вспомнить. Вспомнил MS Agent но это COM
Я вот если функция deprecated — пишу свою обёртку, где делаю LoadLibrary/GetProcAddress для новой функции, если её нет — тоже самое для старой.


Re[4]: Не запускается приложение в WinXP

От:

Евгений Музыченко

Франция

https://software.muzychenko.net/ru
Дата:  23.12.20 15:56
Оценка:

Здравствуйте, qaz77, Вы писали:

Q>С toolset xp в sp3 должно работать.

Сейчас специально проверил — работает даже с родным Toolset (v142). Только нужно явно поставить версии системы/подсистемы 5.1.


Re[6]: Не запускается приложение в WinXP

От:

Евгений Музыченко

Франция

https://software.muzychenko.net/ru
Дата:  23.12.20 17:43
Оценка:

Здравствуйте, edton, Вы писали:

E>Я вот если функция deprecated — пишу свою обёртку, где делаю LoadLibrary/GetProcAddress для новой функции, если её нет — тоже самое для старой.

Думаю, это избыточно. Как уберут — так можно и обертку писать.


Re[5]: Не запускается приложение в WinXP

От:

morgot

 
Дата:  23.12.20 23:57
Оценка:

Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, morgot, Вы писали:


M>>В Pelles C проще.


ЕМ>Я не имел дела с Pelles C, но не понимаю, что может быть проще указания в настройках минимальной версии Toolset’а и режима статического подключения CRT.

Будет время, советую попробовать, очень удобная и минималистичная вещь. В контексте этой задачи — Pelles не требует MSVC1XX.DLL, а использует то, что есть в Windows.

ЕМ>>>Работать под VS 6 только ради того, чтобы собирать приложение с runtime DLL и не тащить ее с собой?

M>>Только версия для ХР, тем более автор врядли пишет энтерпрайз..
ЕМ>Не понял смысла этой фразы. Можно ее расшифровать?

Имею ввиду, что автор темы врядли пишет сложное коммерческое приложение, где ему нужно непременно VS 2017/19 со всеми фишками. Чтобы поиграться, потестировать возможности WinApi — вполне хватит шестой студии. У меня она стоит как раз на виртуалке с Win2k, удобнее, чем играться с настройками в новых студиях. Там просто собрал и юзаешь.

M>>Все равно, сейчас написание программы для ХР — и так огромный костыль с кучей if..else.

ЕМ>Если писать на модном современном фреймворке — безусловно. Если писать на WinAPI/CRT, можно вообще нигде не проверять версию системы, если не требуется поддерживать функциональность, добавленную после XP.

Я на фреймворках не писал ни разу, тут не в курсе; имею ввиду, что многие вещи доступны в виста и выше, и хотелось бы их использовать в программе, но увы. Поэтому приходится делать костыли с if..else; с тем же КриптоАпи были какие-то нюансы, работающие по разному на семерке и ХР, да много чего.

А много людей сейчас используют ХР, вообще? Я встречал на серверах Windows2003, собственно про него и речь большей частью; а именно ХР..на васме какой-то безумный товарищ предлагает сборки. Просто ее очень неудобно использовать, наверное — современный софт туда не идёт, даже половину сайтов не откроешь из-за устаревших криптостандартов. Не ради холивара, просто интересно.


Re[6]: Не запускается приложение в WinXP

От:

Евгений Музыченко

Франция

https://software.muzychenko.net/ru
Дата:  24.12.20 10:05
Оценка:

1 (1)
+1

Здравствуйте, morgot, Вы писали:

M>Будет время, советую попробовать, очень удобная и минималистичная вещь.

В чем именно выражается «минималистичность»? С помощью любого комплекта MS Tools, вплоть до 2019 — хоть через студию, хоть непосредственно из командной строки — я могу сделать EXE размером от 1536 байт, и произвольно наполнять его функциональностью C++, полностью контролируя размер и быстродействие. Что мне в этом плане сможет дать Pelles C, кроме невозможности использования средств C++?

M>В контексте этой задачи — Pelles не требует MSVC1XX.DLL, а использует то, что есть в Windows.

Так любая реализация C/C++, включая MS VC, умеет собирать бинарники со статическим CRT.

M>Имею ввиду, что автор темы врядли пишет сложное коммерческое приложение, где ему нужно непременно VS 2017/19 со всеми фишками. Чтобы поиграться, потестировать возможности WinApi — вполне хватит шестой студии.

Для этого вполне хватит любой среды с любым тулчейном.

M>У меня она стоит как раз на виртуалке с Win2k, удобнее, чем играться с настройками в новых студиях. Там просто собрал и юзаешь.

Если выбирать из старых версий VS, то достойной альтернативы 2008 я не знаю. Родной компилятор VS 6 (версия 1200) не умеет многого из того, что умеет 1500 из VS 2008, а заменить его на более новый весьма проблематично. Документация в VS 6 прибита гвоздями, и слишком стара, в то время как VS 2008 работает с локальной MSDN 2008, где есть документация и по висте. В VS 2008 есть property sheets, которых можно наделать один раз — для конкретных SDK/DDK, платформ (x86/x64), конфигураций (debug/release и т.п.), внешних библиотек и прочего — и затем просто накидывать в каждый проект, добавляя несколько макросов для тонкой настройки. В VS 6 для этого нужно править настройки каждой конфигурации каждого проекта. Родные компилятор/линкер VS 6 не работают с заголовками/библиотеками SDK/DDK уже где-то с самого начала 2000-х, а компилятор/линкер VS 2008 можно использовать и с SDK/WDK 10.x.

M>А много людей сейчас используют ХР, вообще?

Для себя — мало. Но есть куча всякого говнософта спецназначения, вроде программ для диагностики автомобилей, медицинского оборудования и т.п., поставляемого в комплекте с оборудованием (так называемое «рабочее место»), которые работают только под XP. Я не знаю, как их разработчики этого добились, но факт. Некоторые с большим скрипом перенесены на семерку, поэтому и ее еще долго будут тащить, невзирая на «неподдерживаемость».

А для программ с динамической привязкой к функциональности системы сейчас наиболее актуальна семерка, которая используется достаточно широко, а многих возможностей, типичных для восьмерок/десяток, в ней нет.

Подождите ...

Wait...

  • Переместить
  • Удалить
  • Выделить ветку

Пока на собственное сообщение не было ответов, его можно удалить.

Операционная система Win XP SP3. Версия профессиональная ОРН локальная, обновление от 10.04.2020

Не обновлялись 2 года. После перепрошивки ключа (при входе в программу автоматически скачался с сайта и применился нами новый регистрационный код ответ), скачивания с сайта и установки обновления при входе в программу

Выдает сообщение 1:

«Сбой функции NtCreateFile API. Эта ошибка никогда не должна возвращаться приложению, она является заглушкой для применения во внутренних процедурах отображения ошибок перенаправителя Windows Lan Manager»

Есть возможность нажать кнопку ОК. Нажимаем ОК и выдает сообщение 2:

 «Ошибка создания процесса»

Есть возможность нажать кнопку ОК. Нажимаем ОК и выдает сообщение 3:

«Не удалось скачать файл http://ib.ru/downloads/utils/DopInfo.ini Повторить»

Есть возможность нажать на кнопку Да или нажать на кнопку Нет. Нажимаем Да и выдает сообщение 1 потом 2 и 3. Нажимаем Нет и выдает сообщение 4:

«Не удалось скачать файл DopInfo.ini. Обновление из Интернета будет недоступно, провести поиск обновления в локальной папке для скачивания?»

Есть возможность нажать на кнопку Да или нажать на кнопку Нет. Нажимаем Да и выдает сообщение 5:

«Не найден файл C:IBORNIBW_UGTempDopInfo.ini»

Есть возможность нажать на кнопку OK. Нажимаем и выдает окно с сообщениями об ошибках:

Невозможно открыть файл «C:IBORNIBW_UGTempDopInfo.ini»  Позиция: IB_UPDATE2.ICL (6,220)

Ошибка при выполнении встроенной функции ФАЙЛ_ОТКРЫТЬ  Позиция IB_UPDATE2.ICL (6,220).

В результате не можем установить хотфиксы к обновлению. Как исправить ошибки чтоб можно было установить хотфиксы, т.к. там имеются весьма полезные исправления и дополнения?

266 / 71 / 11

Регистрация: 29.05.2011

Сообщений: 2,037

1

07.05.2016, 12:16. Показов 14644. Ответов 11


Появляется такое сообщение при попытке войти в «танки».
Интернет — также коряво. Максимум — откроется поисковик гугл, но ни на одну ссыль попасть не может.
Также произвольно включается брандмауэр.
Это все после переустановки ОС. (Дистрибутив проверен десятилетиями).
Решил, что криво встали дрова (был небольшой прецедент). Переустановил ОС по-новой, более ответственно подошел к дровам (не впервой).
Картина все та же.
Помогите, плиз!(
ЗЫ в нэте решения проблемы найти не смог.(



0



Эксперт HardwareЭксперт Windows

21296 / 12106 / 653

Регистрация: 11.04.2010

Сообщений: 53,466

07.05.2016, 13:18

2

Цитата
Сообщение от Bazaroff
Посмотреть сообщение

более ответственно подошел к дровам

а как, если не секрет?

Цитата
Сообщение от Bazaroff
Посмотреть сообщение

Дистрибутив проверен десятилетиями

говносборка, надо полагать?
железо — страшная тайна?



0



266 / 71 / 11

Регистрация: 29.05.2011

Сообщений: 2,037

08.05.2016, 12:06

 [ТС]

3

2 дня ковыряний.
Этот комп у меня не первый раз. Раз в пару месяцев его мне приносят. То танки слетели, то ОС навернулась.
ОС — официальный дистриб. В свое время скачан у мелких.
Дрова… всегда качаю у производителя хардваре. В этот раз решил поэкспериментировать и на сетевуху (интегрированную) на сайте Реалтек нашел вроде их эзернет контроллер и скачал там. Решил, что драйвер встал криво.
Поэтому при дальнейших манипуляциях дрова брал только у ECS.
И вот, несколько попыток переустановки ОС показали, что официальный дистриб не в состоянии войти в интернет — сообщения типа «сервер не найден», а в танки — вышеуказанное сообщение.
А вот, к удивлению говносборка а-ля «Зверь» встала. Правда, в танки — без вопросов, а серфинг проблематичен. На очень объемных сайтах становится колом.
В обоих случаях брендмауер самопроизыольно может включаться.
Что за неведомая фигня?(



0



Эксперт HardwareЭксперт Windows

21296 / 12106 / 653

Регистрация: 11.04.2010

Сообщений: 53,466

08.05.2016, 12:09

4

может, вирье? антивирус какой?



0



266 / 71 / 11

Регистрация: 29.05.2011

Сообщений: 2,037

08.05.2016, 12:15

 [ТС]

5

qvad, так при установке же форматирую С:.
Но на всяк прогнал Стингером МаКафи — чисто.

Добавлено через 4 минуты
Снести разделы перебить по-новой?



0



Эксперт HardwareЭксперт Windows

21296 / 12106 / 653

Регистрация: 11.04.2010

Сообщений: 53,466

08.05.2016, 12:47

6

а чем оно поможет? смарт покажите лучше, мало ли…



0



266 / 71 / 11

Регистрация: 29.05.2011

Сообщений: 2,037

08.05.2016, 12:51

 [ТС]

7

Цитата
Сообщение от qvad
Посмотреть сообщение

а чем оно поможет?

Если кто-то неведомый сидит в таблицах…

Добавлено через 57 секунд

Цитата
Сообщение от qvad
Посмотреть сообщение

смарт покажите лучше, мало ли…

Например?



0



Эксперт HardwareЭксперт Windows

21296 / 12106 / 653

Регистрация: 11.04.2010

Сообщений: 53,466

08.05.2016, 12:53

8

Как получить S.M.A.R.T. жесткого диска

Добавлено через 30 секунд

Цитата
Сообщение от Bazaroff
Посмотреть сообщение

Если кто-то неведомый сидит в таблицах

тогда нулями затирать нужно



0



266 / 71 / 11

Регистрация: 29.05.2011

Сообщений: 2,037

08.05.2016, 12:59

 [ТС]

9

Как получить S.M.A.R.T. жесткого диска

Не, я в том смысле, причем тут неисправность ЖД? Вроде ж картина на это никак не указывает?



0



Эксперт HardwareЭксперт Windows

21296 / 12106 / 653

Регистрация: 11.04.2010

Сообщений: 53,466

08.05.2016, 13:11

10

дело ваше…



0



266 / 71 / 11

Регистрация: 29.05.2011

Сообщений: 2,037

08.05.2016, 13:24

 [ТС]

11

qvad, да я не упрямлюсь. Просто хочу знать что это может дать?



0



266 / 71 / 11

Регистрация: 29.05.2011

Сообщений: 2,037

14.05.2016, 11:38

 [ТС]

12

М-да…
Мои дистрибы не рабочие!( Поставил семерку — огонь!
Не понимаю как это могло произойти! Что может случится с дистрибом на dvd-диске!? Одновременно и с образом!?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

14.05.2016, 11:38

Помогаю со студенческими работами здесь

API — функции
Добрый вечер Господа!)))
Вопрос —
где можно найти толковую тнформацию по параметрам функции…

API функции
И снова здравствуйте, господа!
как мне написать команды сохранить и открыть файл с помощью API…

API функции
создать программу описывающую сетевую карту с помощью API функции. интерфейс должен быть как при…

API функции
Здраствуйте!
Помогите пожалуйста с реализацией простенькой API функции кроме ExitProcess u…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

12

I’m a packager for the Inkscape project and I’m currently investigating if we can switch to MSYS2/mingw-w64 for building the official Inkscape Windows distributions in future.

I already successfully built Inkscape trunk with both, i686 and x86_64 architectures and they run on Windows 10 x64.

However I tried to run the i686 build on Windows XP x86 which immediately fails with the following system error:

The NtCreateFile API failed. This error should never be returned to an application, it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines.

Seems to be ERROR_NET_OPEN_FAILED (see error number 570 here), which I’m not sure makes sense at all and I have really no idea what could possibly trigger it, so I’m hoping somebody around here can help me find out what’s going wrong!

The only thing I have so far: Could this be a problem with exception handling? I know x86_64-w64-mingw32 is built with dw2 exception handling and if I understand the information in the GCC wiki correctly it might be fundamentally incompatible for building an app like Inkscape?

P.S. I know this is not a real bug report, yet, as I’ve still to determine if the problem is actually in one of the MINGW-packages. However I couldn’t find a better location to discuss such issues, so please let me know if I overlooked anything

I’m a packager for the Inkscape project and I’m currently investigating if we can switch to MSYS2/mingw-w64 for building the official Inkscape Windows distributions in future.

I already successfully built Inkscape trunk with both, i686 and x86_64 architectures and they run on Windows 10 x64.

However I tried to run the i686 build on Windows XP x86 which immediately fails with the following system error:

The NtCreateFile API failed. This error should never be returned to an application, it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines.

Seems to be ERROR_NET_OPEN_FAILED (see error number 570 here), which I’m not sure makes sense at all and I have really no idea what could possibly trigger it, so I’m hoping somebody around here can help me find out what’s going wrong!

The only thing I have so far: Could this be a problem with exception handling? I know x86_64-w64-mingw32 is built with dw2 exception handling and if I understand the information in the GCC wiki correctly it might be fundamentally incompatible for building an app like Inkscape?

P.S. I know this is not a real bug report, yet, as I’ve still to determine if the problem is actually in one of the MINGW-packages. However I couldn’t find a better location to discuss such issues, so please let me know if I overlooked anything

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Сбой установки приложения сообщение об ошибке ошибка 0x80073d02
  • Сбой установки приложения сообщение об ошибке неопознанная ошибка 0x80073cfd