Сбой функции 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).

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

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 / 2

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

Сообщений: 96

1

29.12.2016, 01:47. Показов 8479. Ответов 6


Студворк — интернет-сервис помощи студентам

Qt Creator 4.2.0
Qt 5.7.1 (MSVC 2015, 32 бита )
Windows XP

Проблема такая.
Программа компилируется и запускается в IDE нормально в режиме отладки и разработки.
При запуске из проводника выдаётся ошибка «Сбой функции NtCreateFile API».

Пробовал ложить в папку с программой библиотеки — не помогает.

В чём может быть проблема?

Миниатюры

Ошибка: "Сбой функции NtCreateFile API"
 



0



184 / 176 / 57

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

Сообщений: 828

29.12.2016, 09:54

2

Чистое приложение пытался собрать и запустить таким же образом? С сетью в своей проге никак не работаешь?



0



0 / 0 / 2

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

Сообщений: 96

30.12.2016, 17:39

 [ТС]

3

С сетью не работаю.

Создаю чистое приложение — тот же самый результат. Вылетает ошибка «Сбой функции NtCreateFile API»



0



Эксперт С++

8385 / 6147 / 615

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

Сообщений: 28,683

Записей в блоге: 30

30.12.2016, 18:16

4

del



0



1069 / 651 / 229

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

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

Записей в блоге: 9

30.12.2016, 23:52

5

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

del

А чего удалил? Справедливое ведь замечание.

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

В чём может быть проблема?

Windows XP не поддерживается Qt 5.7.



0



Эксперт С++

8385 / 6147 / 615

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

Сообщений: 28,683

Записей в блоге: 30

30.12.2016, 23:57

6

Wyn, C учетом того что

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

Программа компилируется и запускается в IDE нормально в режиме отладки и разработки.



0



1069 / 651 / 229

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

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

Записей в блоге: 9

31.12.2016, 00:33

7

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

C учетом того что

Не имеет значения. Это вполне может быть UB, возникшее в результате нарушения какого-либо Windows XP- специфичного функционала Qt. Вот если бы подобные проблемы возникли у Qt 5.6 — было бы другое дело.



0



  • Главная

  • Форум
  • Компьютеры — софт и железо
  • Компьютеры — разные проблемы
  • Сбой функции NtCreateFile API — Win XP » Страница 1

Компьютеры — разные проблемы

NtCreateFile API — Win XP

#1

10:13 10 дек 2017

Привет, тут сбой функции NtCreateFile API — Win XP .. ntdll.dll.zip скачал, не помогло. Как исправить ошибку?

smile

Дополнительный скрин #1

(42.12 Kb)

тема создана: 10:13 10 дек 2017


голосов: 1

#2

10:28 10 дек 2017

конфиг компа, SP3 установлен ?
————-

добавлено в 10.27:

CreateFile error could be caused by insufficient permissions or anti-virus software.

антивирус есть?

#3

10:50 10 дек 2017

Цитата: DimonVideo

Win XP SP3 .. что-то удалил ESET Security

#4

10:52 10 дек 2017

ну пишут что то с антивирусом связанное, переустанвливай все))

Возможно, вам также будет интересно:

  • Сбой установки приложения сообщение об ошибке ошибка 0x80073d02
  • Сбой установки приложения сообщение об ошибке неопознанная ошибка 0x80073cfd
  • Сбой установки приложения сообщение об ошибке неопознанная ошибка 0x80040154
  • Сбой установки приложения сообщение об ошибке класс не зарегистрирован 0x80040154
  • Сбой установки ошибка 1603 автокад 2022

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

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