Уроки Iczelion'а




Сервисы оболочки времени приложения - часть 2


Все параметры размера DWORD. Теперь несколько слов относительно того самого параметра rgchBaggage, о котором я обещал рассказать. Это не так просто. rgchBaggage - это параметр структуры SHEXPACKET, но он не может быть включен в определение структуры, поскольку его размер непостоянен. Проверьте shell.inc, вы увидите, что rgchBaggage не определен в SHEXPACKET, хотя документация Windows 9x DDK утверждает, что это член данной структуры.

Что такое rgchBaggage? Это просто массив ASCIIZ-структуры, которая следует за структурой SHEXPACKET. Внутри этого массива вы можете поместить имя операции, которую вам нужно выполнить над файлом, имя файла и имя рабочей директории. SHELL VxD получает смещение строки в rgchBaggage, добавляя относительный адрес строки к адресу структуры. Hапример, если SHEXPACKET начинается в 60000h, а строка следует прямо за ней, тогда дистанция между структурой и строкой - это размер самой структуры, 32 байта (20h). Shell VxD будет знать, что строка находится по адресу 60020h.




Содержание  Назад  Вперед