
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.52] |
![]() |
|
Страницы: (51) « Первая ... 15 16 [17] 18 19 ... 50 51 ( Перейти к последнему сообщению ) |
Сообщ.
#241
,
|
|||||||||||||||||
|
Вот наконец-то решил проблему, может кому нибудь будет интересно... Для того что-бы устройство было Read Only необходимо на запрос MODE SENSE передать структуру Mode parameter list в которой есть структура Mode parameter header и в которой необходимо правильно заполнить поле DEVICE-SPECIFIC PARAMETER
WP это и есть то что надо - write protected ![]() |
Сообщ.
#242
,
|
|
|
Ответа не дождался. Сделал сам :-)
Если у кого-то возникнут такие же трудности, спрашивайте! Однако, всем спасибо :-) |
Сообщ.
#243
,
|
|
|
Здравствуйте для всех. Мот кто-нить решал проблему с получение серийного номера для УСБ карты, но не через строковый дескриптор? Например, через SCSI Inquiry. А то это есть очень большой трабл для меня: нужно получить серийник для карты памяти, которая вставлена, например, в лун 2. Через дескриптор УСБ устройства получаю серийник для кардридера. Для Inquiry написано что можно получить через EVPD (бит для получения vendor-specific data), но при этом даже не возвращается супорченные страницы (всегда стдандартный блок из 36 байт). Если кто сталкивался - направте хоть в правильное русло что ли!!!
|
Сообщ.
#244
,
|
|
|
У меня есть какой-то драйвер, точнее архив называется usbdos.zip в нём имеются файлы
DI1000DD.SYS HIMEM.SYS MSCDEX.EXE USBASPI.SYS USBCD.SYS Так вот может кому-то надо то я выложу, или если он уже обсуждался, то извините, пожалуйста... |
Сообщ.
#245
,
|
|
|
Катенька, большое спасибо за внимание к моему обращению. Но, к сожалению, судя по содержимому, это мне уже не поможет
![]() |
Сообщ.
#246
,
|
|
|
У карты нет серийного номера, кроме того который ОС записывает на FS при форматировании.
По Inquiry получается название кардридера, и серийного номера там всё равно нет. Есть производитель, название устройства и версия - но не карты, а кардридера. |
Сообщ.
#247
,
|
|
|
Спасибо. Но мне говорят обратное. Люди которые работают с картами (ведут их учет) говорят что номер автоматически получают. В подробности не вдаются. Ну да ладно. Есть выход на производителя - посмотрю что скажут они. Спасибо.
![]() |
Сообщ.
#248
,
|
|
|
Было бы не плохо узнать, что это за карта такая. Как я понимаю речь не о MMC, SD или тому подобных...
|
Сообщ.
#249
,
|
|
|
Я не утверждаю. Жду ответа от надежного источника. А карты всех типов: CF, MMC, SD etc.
![]() |
Сообщ.
#250
,
|
|
|
Цитата torpetska @ Я не утверждаю. Жду ответа от надежного источника. А карты всех типов: CF, MMC, SD etc. Ну если узнаеш - напиши. Я собственно тоже работал с картами - драйвер писал для кардридера и флэшек под DOS. По Inquiry серийный номер получить нельзя. Ты бы спросил у них поточнее, потому что вполне может использоваться серийный номер тома, созданного на этой карте. Т.е. это не аппаратный серийный номер, а номер который записывает ОС при форматировании (это функция от времени форматирования). И конечно если переформатировать карту то этот номер изменится. Если всё-таки можно получить аппаратный номер и узнаеш как - напиши ![]() |
Сообщ.
#251
,
|
|
|
ok. в ближайшем будущем точно узнаю.
![]() |
Сообщ.
#252
,
|
|
|
Предположим есть коды стандартных запросов
UTSC_GET_STATE = 0 UTSC_CLEAR_FEATURE = 1 UTSC_SET_FEATURE = 3 UTSC_SET_ADDRESS = 5 UTSC_GET_DESCRIPTOR = 6 ; UTSC_SET_DESCRIPTOR = 7 ; UTSC_GET_CONFIGURATION = 8 UTSC_SET_CONFIGURATION = 9 UTSC_GET_INTERFACE = 0Ah UTSC_SET_INTERFACE = 0Bh UTSC_SYNCH_FRAME = 0Ch А вот теперь вопрос. Есть ряд запросов с нестандартными кодами например RequestFlag = 21h RequestCod = FFh (еще есть RequestParam = 8000h ; предположительно адрес в устройстве Index = позиция в буфере данных В этом запросе (судя по флагам интерфейсу ?)передается довольно большой буфер данных 3270 байт (есть и больше) Может это какой-нибудь изощренный запрос репорта? Вот начальные байты буфера: 0F3h,31h,0FCh,8Fh,18h, 9, 3, 1,0D0h, 7, 4,1Ah, 1,0,0 0AFh,32h, 5,8Eh,3Eh,21h,32h, 6,0C0h,3Ah, 4,8Eh,0E6h 73h,32h, 4,8Eh,11h,52h,8Eh,21h,0CCh,87h, 1,20h, 0,0EDh 0B0h,21h,36h,0C0h,0CBh,7Eh,20h,18h,0CBh,56h,20h,16h 2Eh,3Ch,5Eh,0CBh,0CEh, 6,0Bh,0CDh,77h,80h,2Eh,36h,0CBh 56h,28h, 6,0CBh,4Bh,20h, 2,0CBh,0B6h,0CDh,67h,81h,3Ah 50h,8Eh,0E6h,40h,0CBh,0EFh,32h,50h,8Eh,0CDh,0C0h,87h 21h,36h,0C0h,0CBh,7Eh,20h,11h,0CBh,56h,28h,0Dh, 6, 0 0CDh,77h,80h,0CDh,77h,80h,0CDh,77h,80h,0CBh,0F6h,0C3h 73h,86h,0E5h,21h, 3,0C0h,7Eh,0BEh,28h,0FDh,10h,0FAh 0E1h,0C9h,0F5h,0C5h,3Ah, 2,0C0h,4Fh,3Ah, 2,0C0h,91h 0FEh,10h,38h,0F8h,0C1h,0F1h,0C9h,0CBh,86h,18h,0EBh 0CBh,0C6h,18h,0E7h,0CBh,8Eh,18h,0E3h,0CBh,0CEh,18h Какие есть идеи? |
Сообщ.
#253
,
|
|
|
Если RequestType равен 2Xh это Vendor specific запрос, да и RequestCode равный FFh на это намекает! Так что передаваться по этому запросу может все что угодно. Разобрать буфер в 3КБ конечно можно, но вопрос: а оно настолько надо? Чтобы понять что посылается устройству надо, как минимум, знать зачем оно (устройство) нужно и что делает.
|
Сообщ.
#254
,
|
|
|
Устройство - USB Mass Storage
То, что это Vendor specific запрос вполне вероятно. Но посмотрите, следующий запрос к интерфейсу будет ли он работать со всеми флешками и дисками (или только с некоторым набором?) Direction = IN (чтение) RequestFlag = 0A1h => (USB_TARGET_INTERF or USB_TYPE_SPC_CLASS or USB_DIR_IN) RequestCod = FEh RequestParam = 00h Index = номер интерфейса Данные - номер текущего логического юнита конечная точка - нулевая Этот и предыдущий запрос действительно связан с ограниченным набором устройств. Попытаюсь разобратся с какими Добавлено Вероятно вот с такими устройствами (неуверен ![]() PCI_VENDORID = 95Bh PCI_PRODUCTID = 121h PCI_VENDORID = 4DAh PCI_PRODUCTID = 0D03h, 0D04h, 0D05h, 0D06h, 0D07h Но найти производителя я не смог. Может кто подскажет ![]() |
Сообщ.
#255
,
|
|
|
Вот теперь понятно!!! Если это Mass Storage Class то это запросы Bulk only Mass Storage Reset (FFh) и GetMaxLun (FEh).
Взято из документа Universal Serial Bus Mass Storage Class Bulk-Only Transport. |