Всем участникам форума добрый день
В NDIS драйвере работаю с ANSI строками (ANSI_STRING). Заметил некоторые тормоза, работа со строками это нормальная практика для NDIS?
D>В NDIS драйвере работаю с ANSI строками (ANSI_STRING).
Вообще-то в ядре всегда лучше использовать UNICODE_STRING и лишние телодвижения по переводу ANSI в UNICODE не есть лучшее решение. Это касается и NDIS — в ndis.h определен псевдоним для UNICODE_STRING — это NDIS_STRING, правильней использовать его
AP>Вообще-то в ядре всегда лучше использовать UNICODE_STRING и лишние телодвижения по переводу ANSI в UNICODE не есть лучшее решение. Это касается и NDIS — в ndis.h определен псевдоним для UNICODE_STRING — это NDIS_STRING, правильней использовать его
-1
Вот допустим я смотрю на DNS пакеты. Я хочу сравнить имя хоста с некой константой. Зачем мне тут юникод стринг? Это касается практически всех сетевых протоколов — повсеместно используются однобайтовые символы.
Здравствуйте, TarasCo, Вы писали: TC>Вот допустим я смотрю на DNS пакеты. Я хочу сравнить имя хоста с некой константой. Зачем мне тут юникод стринг? Это касается практически всех сетевых протоколов — повсеместно используются однобайтовые символы.
Не хочется подвергать сомнению ваш авторитет, Александр, я безгранично вас уважаю, НО, во-первых: тот ли случай с dns имеет ввиду автор? Или как вы изволили выразиться, использование однобайтных символов?
Во-вторых, ответьте, зачем нужно было переопределять UNICODE_STRING в ndis? Для удобства? Или все-таки для того что ядро Win изначально "приспособлено" для работы с юникодом и юникод является своего рода "родной" структурой для ядра?
Я не говорю о том, что автор где-то ошибся, потому что не вижу кода. В данном конкретном случае я хотел показать автору (ЕЩЕ РАЗ ПЕРЕЧИТАЙТЕ МОЙ ПОСТ), что речь идет о моветоне программирования в ядре, с моей точки зрения.
Разочарован. Минус, короче
Здравствуйте, A.Pastukhov, Вы писали:
AP>НО, во-первых: тот ли случай с dns имеет ввиду автор? Или как вы изволили выразиться, использование однобайтных символов?
Я передаю в драйвер однобайтовую строку, которая описывает что мне надо проверять в приходящих пакетах unicode мне неудобен AP>Во-вторых, ответьте, зачем нужно было переопределять UNICODE_STRING в ndis? Для удобства? Или все-таки для того что ядро Win изначально "приспособлено" для работы с юникодом и юникод является своего рода "родной" структурой для ядра? AP>Я не говорю о том, что автор где-то ошибся, потому что не вижу кода. В данном конкретном случае я хотел показать автору (ЕЩЕ РАЗ ПЕРЕЧИТАЙТЕ МОЙ ПОСТ), что речь идет о моветоне программирования в ядре, с моей точки зрения. AP>Разочарован. Минус, короче
Спасибо Вам что отреагировали на мой вопрос, я поставил плюс. равновесие
[skip] AP>>Во-вторых, ответьте, зачем нужно было переопределять UNICODE_STRING в ndis? Для удобства? Или все-таки для того что ядро Win изначально "приспособлено" для работы с юникодом и юникод является своего рода "родной" структурой для ядра? AP>>Я не говорю о том, что автор где-то ошибся, потому что не вижу кода. В данном конкретном случае я хотел показать автору (ЕЩЕ РАЗ ПЕРЕЧИТАЙТЕ МОЙ ПОСТ), что речь идет о моветоне программирования в ядре, с моей точки зрения. AP>>Разочарован. Минус, короче D>Спасибо Вам что отреагировали на мой вопрос, я поставил плюс. равновесие
Замечу — тут обычная арифметика не работает. Один просто высказал свое мнение не учтя что другой может так обидется и в итоге видим как накинулся с "критикой" в ответ на самим придуманное "оскорбление". Так что вечный дивгатель на лицо возмущение намного выше затраченной силы.
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.
D>до этого был вызов strlen и все проходило нормально. проблема в операторе * ?
Проблема в нечитании MSDN:
This indicates that Microsoft Windows or a kernel-mode driver accessed paged memory at DISPATCH_LEVEL or above
Еще хочу добавить, что использовать strlen и "однобайтовую строку, которая описывает что мне надо проверять в приходящих пакетах" — может и не моветон, но корень и тормозов, и остальных проблем.
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth