Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.052 c
1-1194445289
Ирина
2007-11-07 17:21
2008.02.17
Работа с Excel через делфи


2-1201192347
Дени
2008-01-24 19:32
2008.02.17
Timer


15-1200483212
GlFox
2008-01-16 14:33
2008.02.17
Windows XP over FreeDOS


8-1173673946
arturich
2007-03-12 07:32
2008.02.17
Возможно ли?


15-1200319830
vajo
2008-01-14 17:10
2008.02.17
Проблема работы принера HP 1018 на WinVista Busines.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский