Форум: "Начинающим";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
ВнизReopenFile - как бы пооптимальнее выкрутиться ? Найти похожие ветки
← →
Riply © (2008-01-25 23:33) [0]Здравствуйте !
Очень нужна эта ф-ия, но остается только смотреть на ее
описание в Help`е и глотать слюнки.
Может кто подскажет как она устроена внутри и
как можно исхитриться, чтобы ее самостоятельно реализовать ?
А то уж очень некузяво и непроизводительно
работать связкой: NtCreate - NtClose - NtCreate.
← →
KilkennyCat © (2008-01-26 01:33) [1]Что-то я такой не помню. Или прекрасная Riply опять не в той теме...
← →
turbouser © (2008-01-26 01:40) [2]
> Riply © (25.01.08 23:33)
В MSDN есть описание.HANDLE WINAPI ReOpenFile(
__in HANDLE hOriginalFile,
__in DWORD dwDesiredAccess,
__in DWORD dwShareMode,
__in DWORD dwFlags
);
.......
И вот еще что:Requirements
Client
Requires Windows Vista.
Server
Requires Windows Server 2008 or Windows Server 2003.
Header
Declared in WinBase.h; include Windows.h.
Library
Use Kernel32.lib.
DLL
Requires Kernel32.dll.
← →
guav © (2008-01-26 02:12) [3]Говорят, что в OBJECT_ATTRIBUTES можно поместить хендл исходного объекта и пустой путь, и передать этот OBJECT_ATTRIBUTES в ZwOpenFile.
http://www.osronline.com/showThread.cfm?link=39205
← →
turbouser © (2008-01-26 02:20) [4]Честно говоря, непонятно, почему
> очень некузяво и непроизводительно
> работать связкой: NtCreate - NtClose - NtCreate.
Эта ф-ция всего-навсего Reopens the specified file system object with different access rights, sharing mode, and flags.
Неужели очень часто надо переоткрывать файл с другими правами/флагами?
Зачем?
← →
Германн © (2008-01-26 02:27) [5]
> turbouser © (26.01.08 02:20) [4]
>
> Честно говоря, непонятно, почему
Ты плохо знаешь автора. Для неё это норма. :)
Но её метода может когда-нибудь сработать.
← →
Riply © (2008-01-26 08:51) [6]> [1] KilkennyCat © (26.01.08 01:33)
> Что-то я такой не помню. Или прекрасная Riply опять не в той теме...
А невозможно помнить нововведения, тем более доступные отнюдь не везде :)
P.S.
В плане характеристики автора топика, "не смею с Вами спроить" :)
> [2] turbouser © (26.01.08 01:40)
> В MSDN есть описание.
Именно там я на нее и "смотрела, глотая слюнки" :)
Под XP ее не удается вытащить (мне во всяком случае)
> [3] guav © (26.01.08 02:12)
> Говорят, что в OBJECT_ATTRIBUTES можно поместить хендл исходного объекта и пустой путь,
> и передать этот OBJECT_ATTRIBUTES в ZwOpenFile.
Вот спасибо, Саш !
Не скажу сколько времени я над этим ломала голову, потому что стыдно :)
Первые опыты показали, что все работает.
Случаев открытия не того, чего надо пока не наблюдала.
Позже погоняю ее для разных (не очень стандартных) случаев.
> [4] turbouser © (26.01.08 02:20)
> Честно говоря, непонятно, почему
> очень некузяво и непроизводительно
> Неужели очень часто надо переоткрывать файл с другими правами/флагами?
> Зачем?
Допустим, нам надо просканировать диск и,
если объект нас интересует, то что-то с ним сделать.
Открытие объектов при сканировании, например, с повышенным уровнем доступа,
плохо, как минимум, по двум причинам:
1. Гораздо больше времени тратится на само открытие
(FILE_ANY_ACCESS и FILE_READ_DATA - день и ночь)
2. Перечисляются не все объекты, которые можно было бы получить с более низкими запросами.
> [5] Германн © (26.01.08 02:27)
> Ты плохо знаешь автора. Для неё это норма. :)
А может желание исправить очевидную неуклюжесть кода и должно быть нормой ? :)
← →
KilkennyCat © (2008-01-26 10:52) [7]> [6] Riply © (26.01.08 08:51)
> > [1] KilkennyCat © (26.01.08 01:33)
> > Что-то я такой не помню. Или прекрасная Riply опять не
> в той теме...
>
> А невозможно помнить нововведения, тем более доступные отнюдь
> не везде :)
я не совсем то хотел сказать. я бы вспомнил ее в разделе WinAPI
← →
Riply © (2008-01-26 11:27) [8]> [7] KilkennyCat © (26.01.08 10:52)
> я не совсем то хотел сказать. я бы вспомнил ее в разделе WinAPI
Как провести грань ?
Слишком часто, когда я задавала вопросы, они мне казались сложными,
но после первых же ответов, становилось ясно,
что это непонимание(незнание) мною простейших вещей.
← →
KilkennyCat © (2008-01-26 12:08) [9]> Riply © (26.01.08 11:27)
> Как провести грань ?
тематически.
← →
guav © (2008-01-26 14:27) [10]> Не скажу сколько времени я над этим ломала голову, потому
> что стыдно :)
Что стыдно не понимаю.
Я даже не ломал голову, просто зашел в гугл посмотреть что это за ReopenFile и вторая же ссылка - вопрос, аналогичный твоему.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c