powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как найти пути к Drivers и CatRoot
10 сообщений из 10, страница 1 из 1
Как найти пути к Drivers и CatRoot
    #39322392
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретно интересуют папки
C:\Windows\System32\drivers
C:\Windows\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE} //здесь MS хранит каталоги с подписями к системным драйверам

Через стандартные .Net-функции (системные папки) и соответствующие API конкретно эти в лоб вроде не ищутся.

Хотя один способ я знаю: найти <C>:\Windows\System32\ и тупо скомбинировать с оставшейся частью.
С учетом того что на Win10 С: он всегда C: то можно и вообще не заниматься вычислениями (на Висте и 7-ке еще был способ "установить на D", если установку начинать из-под другой системы, начиная с 8-ки это не работает, других способов не знаю).

Но все же?

И до кучи чтоб не плодить тем.
Вот мувнул я каталог с подписью в C:\Windows\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
Или например убрал его оттуда.
Сдается мне, что система не всегда сразу понимает что подписи уже нет, или что она там есть.
(после перезагрузки все всегда корректно)
Нет способа сделать Refresh этому делу и пересоздать все "кэши"? (сразу и без перезагрузки)
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39322401
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В WinAPI есть SHGetFolderPath()
https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb762494(v=vs.85).aspx CSIDL_SYSTEM

Version 5.0. The Windows System folder. A typical path is C:\Windows\System32.
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39322417
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Это я все знаю.
Но там нет ключей чтоб конкретно drivers и CatRoot выводило.
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39322421
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напр. для принтеров есть
Код: vbnet
1.
2.
3.
 Public Declare Unicode Function GetPrinterDriverDirectory Lib "winspool.drv" Alias "GetPrinterDriverDirectoryW" _
  (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Integer, _
   ByVal pDriverDirectory As StringBuilder, ByVal cdBuf As Integer, ByRef pcbNeeded As Integer) As Boolean



Выводит
DriverDirectory: C:\WINDOWS\system32\spool\DRIVERS\x64\

Но то для принтеров.
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39322427
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХУ сомневаюсь что есть какая-то гибкая настройка для каждой подпапки System32. Если бы было, то скорее всего было бы в реестре, там я по CatRoot ничего не нашел.
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39322428
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Ну а по Drivers хотя бы?
Я знаю:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  Public Function GetDriverCachePath() As String
    Dim the_str As String
    the_str = GetCorrectPath(RegGetValue_Net(Registry.LocalMachine, _
     "SOFTWARE\Microsoft\Windows\CurrentVersion\Setup", "DriverCachePath", ""))
    If Strings.Len(the_str) > 0 Then
      GetDriverCachePath = CorrectDir(the_str)
    Else
      GetDriverCachePath = the_str
    End If
  End Function



Хотя сдается мне это нигде кроме как на XP давно не работает.
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39322437
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По drivers очень много всего находится.
Вот например в HKLM\SOFTWARE\Microsoft\DirectMusic
Код: c#
1.
%SystemRoot%\system32\drivers\GM.DLS


И подобная конструкция неоднократно попадается у меня в реестре.

ИМХУ если MS так пишет, то вероятнее всего все пути относительно папки виндовса заданы жестко, а всякие вспомогательные функции получения подпапок просто для удобства.
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39322442
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

В стандартных "переменных среды" тоже нет:
Код: vbnet
1.
2.
  Public Declare Unicode Function GetEnvironmentVariable Lib "Kernel32.dll" Alias "GetEnvironmentVariableW" _
  (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Integer) As Integer



Ну тогда только вычислять System32, остальное приписывать.
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39322880
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Дмитрий77В стандартных "переменных среды" тоже нет:

Чем не устраивает
Дмитрий77Хотя один способ я знаю: найти <C>:\Windows\System32\ и тупо скомбинировать с оставшейся частью.
Не понял почему это плохо
...
Рейтинг: 0 / 0
Как найти пути к Drivers и CatRoot
    #39323027
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Чем не устраивает
Дмитрий77Хотя один способ я знаю: найти <C>:\Windows\System32\ и тупо скомбинировать с оставшейся частью.
Не понял почему это плохо
Привык цепляться потому что, чтоб в один прекрасный раз не огрести по полной.

Ладно, хрен с ним:
Код: vbnet
1.
2.
3.
4.
5.
6.
    Dim sys_folder As String
    Dim path_modem_sys As String
    Dim path_catalogs As String
    sys_folder = GetFolderPath(SpecialFolder.System)
    path_modem_sys = IO.Path.Combine(sys_folder, "drivers\modem.sys")
    path_catalogs = IO.Path.Combine(sys_folder, "CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}")
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как найти пути к Drivers и CatRoot
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]