З>>Да все функции можно вызывать хоть на DISPATCH_LEVEL — если все в NonPool, но тогда под verifier.exe жить не будет если проверку на IRQL включить
TC>Да все будет нормально и под верифаером. Просто MS "подстилают солому". Все их юникодовские строки виделены на свопируемой памяти. Соответственно, попытка работать с ними на DISPATCH_LEVEL вызовет page fault (как всем известно ). Когда происходит падение под верифаером при вкл. IRQL — значит был доступ к свопабельной памяти (проверка IRQL заключается только в том, что вся свопабельная память принудительно свопируется (как достало это слово ) ). Поэтому если есть уверенность, что обе строки в несвопируемой памяти — можно пользоваться ф. Rtl... (или если кому нравиться ANSI C — стандартными — реализация то одна ) на любом IRQL. В частности, RtlUpcaseUnicodeString можно использовать только при собственноручном выделении строк (т.е тр. парам = FALSE)
Заявляю что все выделялось в NonPool и когда использовалась стандартная Rtl... функция под verifer с включенным обязательная проверка IRQL все валится. Написал свою функцию и все ... работает.
А насчет реализации
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.