У меня есть проблема с копированием строки из типа в другой. код, который имеет проблему, указанную ниже.RtlStringCbCopyW Может ли копировать только первый символ строки?
DbgPrint("Value of ProcessName =%wZ \n",&ProcessName);
//The Type of ProcessName is UNICODE_STRING
RtlStringCbCopyW(myBuffer,((MAX_PATH+90)*sizeof(WCHAR)),ProcessName.Buffer);
//try to copy from ProcessName.Buffer to myBuffer
DbgPrint("Value of MyBuffer =%s \n",MyBuffer);
//The Type of MyBuffer is Array of WCHAR
DbgPrint("Value of ProcessName.Buffer =%s \n",ProcessName.Buffer);
Выход: -
Value of ProcesssName =\Device\HarddiskVolume1\Windows\explorer.exe
Value of MyBuffer =\
Value of ProcesssName.Buffer =\
почему это происходит?
Большое спасибо .. его теперь работает. на самом деле я занимаюсь программированием режима ядра на мини-драйвере, поэтому я добавил эти теги. –
У меня есть еще один вопрос: если я хочу извлечь \ Windows \ explorer.exe из \ Device \ HarddiskVolume1 \ Windows \ explorer.exe, что я нужно сделать для этого? –
@ KashifMeo- что вы подразумеваете под "extract" ?? если вы хотите получить FS-путь только из полного nt-пути - можете открыть файл, а затем запросить его 'FileNameInformation' – RbMm