На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (51) « Первая ... 14 15 [16] 17 18 ...  50 51  ( Перейти к последнему сообщению )  
> Желающим USB под ДОС , Welcome!!!
    Цитата uchtinka @
    ТОчно не знаю но по-моему SUBST работать и с файлами.

    Нет, с файлами не работает...

    Цитата uchtinka @
    А есть ли где-нибудь примеры драйвер сетевых дисков да еще под ДОС я не нашел

    Примеров и я не нашёл...

    Почитать описание функций можно тут: http://www.ctyme.com/intr/int-2f.htm
    Называется Network Redirector.
    Только посмотрел я что малой кровью всё равно не отделаться.
    Это гораздо больше драйвер FS, чем драйвер блочного устройства.
    Т.е. там команды типа создать папку, удалить папку, открыть файл, записать в файл и т.д...
    Т.е. в драйвер флэшки прийдётся встраивать поддержку FS.
    Если надумаеш - здесь в теме выше были ссылки на opensource драйвера FAT 12/16/32.
    К своему проекту можно достаточно легко прикрутить.
      Цитата
      Почитать описание функций можно тут: http://www.ctyme.com/intr/int-2f.htm

      что-то не могу достучатся может у тебя есть тогда может выложишь на форуме
      Цитата
      Это гораздо больше драйвер FS, чем драйвер блочного устройства.
      Т.е. там команды типа создать папку, удалить папку, открыть файл, записать в файл и т.д...

      это я уже понял как залез поглубже. Мало того прийдется поддерживать еще USB- жесткие диски а там вообще темный лес. ведь диск может быть разбит на несколько логических да еще и с разными типами FS. т.е прийдется сначала как-то определить эти диски. Попробую реализовать отдельный драйвер FAT32. Так проще. И видимо прийдется что-то дизассемблировать -информации практически 0 примеров очень мало. Вот такая фигня :huh:

      Цитата
      Если надумаеш - здесь в теме выше были ссылки на opensource драйвера FAT 12/16/32.
      К своему проекту можно достаточно легко прикрутить.


      Я посмотрел библиотеки. Проблема в том, что во-первых они линуксовые ну да это ладно можно переделать, а во- вторых я уже настролся все писать на asm а они на С -прийдется много переделывать. Может ты знаешь где можно взять готовый драйвер на asm -было бы вообще здорово.
        Цитата uchtinka @
        что-то не могу достучатся может у тебя есть тогда может выложишь на форуме

        Ещё есть тут:
        http://www.delorie.com/djgpp/doc/rbinter/ix/2F/11.html
        http://poli.cs.vsb.cz/misc/rbint/ix/2F/11.html


        Цитата uchtinka @
        Я посмотрел библиотеки. Проблема в том, что во-первых они линуксовые ну да это ладно можно переделать, а во- вторых я уже настролся все писать на asm а они на С -прийдется много переделывать. Может ты знаешь где можно взять готовый драйвер на asm -было бы вообще здорово.

        На ASM не знаю таких библиотек.
        Можно компилятором сгенерировать ассеблерный исходник из сишного и поправаить немного...
          Цитата
          Ещё есть тут:
          http://www.delorie.com/djgpp/doc/rbinter/ix/2F/11.html
          http://poli.cs.vsb.cz/misc/rbint/ix/2F/11.html


          Да... Посмотрел и ахнул чтобы все это реализовать нужно как минимум месяцев 5-6
          чтобы что-то задышало. А мне уже к новому году нужен первый результат :yes-sad:
          Я понял еще одну вещь -попытался я декомпилировать драйвер di1000dd.sys -тот что идет с
          usbaspi и обнаружил интересную вещь: оказывается этот драйвер просто монтирует логический диск
          по той схеме которую я описывал т.е. использует 52h функцию 21 прерывания.
          При запуске он обращается по IOCTL к драйверу usbaspi и получает от него список подключенных устройств. пока правда непонятно как он перенаправляет вывод.
          Только непонятно почему они не сделали тогда горячего подключения? вообще пока еще много неопределенности во всем этом вопросе.

          Добавлено
          Цитата
          Ещё есть тут:
          http://www.delorie.com/djgpp/doc/rbinter/ix/2F/11.html
          http://poli.cs.vsb.cz/misc/rbint/ix/2F/11.html

          кстати а есть ли подобные ресурсы на русском?

          Добавлено
          кстати кто-нибудь слышал что-нибудь про IFS -драйвера ?
            Цитата uchtinka @
            кстати кто-нибудь слышал что-нибудь про IFS -драйвера ?

            Насколько я знаю (могу ошибаться) - IFS это как раз и есть драйвер сетевого устройства.
            Т.е. он должен реализовывать те функции, на описание которых я ссылку давал...

            Кстати, если уже потянуло на декомпиляцию - найди в сети XMSDSK.EXE
            Это драйвер RAM-диска, небольшой, использует XMS.
            Но самое интересное - есть версия в виде драйвера (sys) и есть в виде exe.
            Причём диск создаётся динамически - как размер так и буква указываются в командной строке.
            Может чем-то поможет...
              Честно говоря cppasm ты оказался прав :huh: . subst и 52 фунция здесь не помогут. Все намного сложнее оказалось. А эта функция кстати в драйвере di1000dd используется всего лишь для проверки присутствия драйвера в списке дравйверов. чтобы не допустить повторного запуска. Интересный алгоритм кстати. Похоже что он перегружает 13h прерывание только пока непонятно как и зачем. Вернее зачем понятно, но что при этом нужно делать - пока не ясно.
                Цитата
                найди в сети XMSDSK.EXE

                Нашел толко другой похожий srdisk там схема такая же как в vdisk исходники которой где-то в книжке в какой-то
                  Хотел задать вопрос, надеюсь что по теме... Есть USB MassStorageDevice собранный на LPC2148, связь уже установлена, в устройстве реализованна FAT16, данные корректно считываются, так вот необходимо кошерно запретить Винде записывать или изменять любые данные, это касается и заголовка FAT и файлов... хотел на уровне протокола SCSI запретить, ну типа корректный ответ на команду записи, но что-то не получается... может есть у кого идеи?
                  Сообщение отредактировано: Vortexx -
                    Возвращай в CSW в поле bCSWStatus 01h - Command Failure

                    user posted image
                    bCSWStatus:bCSWStatus indicates the success or failure of the command. The device shall set this byte to zero if
                    the command completed successfully. A non-zero value shall indicate a failure during command
                    execution according to the following table:
                    user posted image

                    Добавлено
                    Если что, это цитата из этого документа http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf
                    Сообщение отредактировано: cppasm -
                      Цитата cppasm @
                      Возвращай в CSW в поле bCSWStatus 01h - Command Failure

                      да конечно, так сразу и сделал, но к сожалению данные визуально удаляются,хотя естественно запись не прошла и появляется ошибка отложеной записи...
                        Цитата Vortexx @
                        да конечно, так сразу и сделал, но к сожалению данные визуально удаляются,хотя естественно запись не прошла и появляется ошибка отложеной записи...

                        Тогда надо посмотреть любым USB монитором какие запросы драйвер ОС посылает флэшке.
                        По памяти (не 100%, сейчас не могу проверить) после отказа драйвер выполнит REQUEST SENSE.
                        И вот там надо вернуть SENSE-KEY=7h (DATA PROTECT)

                        Sense keyDescription
                        0hNO SENSE. Indicates that there is no specific sense key
                        information to be reported for the designated logical unit. This
                        would be the case for a successful command or a command that
                        received CHECK CONDITION or COMMAND TERMINATED status because one
                        of the filemark, EOM, or ILI bits is set to one.
                        1hRECOVERED ERROR. Indicates that the last command completed
                        successfully with some recovery action performed by the target.
                        Details may be determinable by examining the additional sense
                        bytes and the information field. When multiple recovered errors
                        occur during one command, the choice of which error to report
                        (first, last, most severe, etc.) is device specific.
                        2hNOT READY. Indicates that the logical unit addressed cannot be
                        accessed. Operator intervention may be required to correct this
                        condition.
                        3hMEDIUM ERROR. Indicates that the command terminated with a nonrecovered
                        error condition that was probably caused by a flaw in
                        the medium or an error in the recorded data. This sense key may
                        also be returned if the target is unable to distinguish between a
                        flaw in the medium and a specific hardware failure (sense key 4h).
                        4hHARDWARE ERROR. Indicates that the target detected a nonrecoverable
                        hardware failure (for example, controller failure,
                        device failure, parity error, etc.) while performing the command
                        or during a self test.
                        5hILLEGAL REQUEST. Indicates that there was an illegal parameter in
                        the command descriptor block or in the additional parameters
                        supplied as data for some commands (FORMAT UNIT, SEARCH DATA,
                        etc.). If the target detects an invalid parameter in the command
                        descriptor block, then it shall terminate the command without
                        altering the medium. If the target detects an invalid parameter
                        in the additional parameters supplied as data, then the target may
                        have already altered the medium. This sense key may also indicate
                        that an invalid IDENTIFY message was received (6.6.7).
                        6hUNIT ATTENTION. Indicates that the removable medium may have been
                        changed or the target has been reset. See 7.9 for more detailed
                        information about the unit attention condition.
                        7hDATA PROTECT. Indicates that a command that reads or writes the
                        medium was attempted on a block that is protected from this
                        operation. The read or write operation is not performed.
                        8hBLANK CHECK. Indicates that a write-once device or a sequentialaccess
                        device encountered blank medium or format-defined end-ofdata
                        indication while reading or a write-once device encountered a
                        non-blank medium while writing.
                        9hVENDOR-SPECIFIC. This sense key is available for reporting vendor
                        specific conditions.
                        AhCOPY ABORTED. Indicates a COPY, COMPARE, or COPY AND VERIFY
                        command was aborted due to an error condition on the source
                        device, the destination device, or both. (See 8.2.3.2 for
                        additional information about this sense key.)
                        BhABORTED COMMAND. Indicates that the target aborted the command.
                        The initiator may be able to recover by trying the command again.
                        ChEQUAL. Indicates a SEARCH DATA command has satisfied an equal
                        comparison.
                        DhVOLUME OVERFLOW. Indicates that a buffered peripheral device has
                        reached the end-of-partition and data may remain in the buffer
                        that has not been written to the medium. A RECOVER BUFFERED DATA
                        command(s) may be issued to read the unwritten data from the
                        buffer.
                        EhMISCOMPARE. Indicates that the source data did not match the data
                        read from the medium.
                        FhRESERVED.
                        Сообщение отредактировано: cppasm -
                          Цитата cppasm @
                          И вот там надо вернуть SENSE-KEY=7h (DATA PROTECT)

                          сразу показалось что это то что доктор прописал :yes: отправляю на REQUEST SENSE структуру в которой Sense Key = 0x07,еще ASC = 0x27 и ASCQ = 0x00 и т.д., но нужный результат не удалось получить... все равно данные визуально удаляются :wacko:
                            Фиг его знает, это Explorer получается у себя из кеша удаляет...
                            Надо как-то дать понять что устройство ReadOnly, только вот как?
                            В Inquiry таких полей нет... А ты пробовал логи USB траффика смотреть?
                            Какие команды драйвер флэшке шлёт?
                            Хоть проще было бы искать где можно ответить что мы ReadOnly...
                            Только странно это как-то - есть в принципе флэшки с переключателем, и защиту от записи можно включить уже после подключения.
                            Правда я не знаю как себя Explorer ведёт при удалении файлов с таких устройств...
                            Сообщение отредактировано: cppasm -
                              Всем доброго времени суток!
                              Помогите!!!
                              Программирую ikey 2032 под ДОС. Все USB пакеты проходят нормально и Setup и Setup c IN и OUT.
                              Но есть там такие поганые команды APDU, которые пересылаются с помощью протокола T=1 этому токену. А их он не хочет принимать.
                              Точнее, вроде бы как он их видит, но ответа я не получаю.
                              Там еще непонятная загвоздка с WTX - Wait Time Extention- запрос на дополнительное время для выполнения внутренней команды, причём написано, что запрос этот посылается токеном в начале после ресета. Так как на него отвечать? И вообще что это такое, WTX, BTX??? В стандарте ISO-7816 про это нормально не написано. Где нормально описаны все варианты PCB байта протокола T=1???
                              ПОМОГИТЕ!!! Кто-нибудь программировал эту белиберду???
                                ЛЮДИ!!! ЧЕЛОВЕКИ!!!
                                Где можно подробнеее почитать про то, как работать по протоколу T=1??? Про байт PCB в заголовке???
                                Может кто вкратце напишет что, куда и в какой последовательности посылается???
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (51) « Первая ... 14 15 [16] 17 18 ...  50 51


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0558 ]   [ 15 queries used ]   [ Generated: 22.07.25, 09:54 GMT ]