Конференция "WinAPI" » Как получить имя Mapped файла по его Handle [D7, WinXP]
 
  • MFN+ (01.01.08 18:25) [0]
    Вот код:
    var
    c:cardinal;
    a:array[0..255]of char;
    p:pointer;
    begin
    p:=windows.MapViewOfFile(MappedHandle,FILE_MAP_READ,0,0,1);
    GetMappedFileName(getcurrentprocessid,p,a,sizeof(a));
    showmessage(a);
    end;

    есть хендл - MappedHandle его передаю, а выдает ?
  • MFN+ (01.01.08 18:41) [1]

    > varc:cardinal;a:array[0..255]of char;p:pointer;beginp:=windows.
    > MapViewOfFile(MappedHandle,FILE_MAP_READ,0,0,1);GetMappedFileName(getcurrentp rocessid,
    > p,a,sizeof(a));showmessage(a);end;


    ошибочка, GetCurrentProcess там, но тоже не помогает.
    Как все-таки получить имя?Подскажите Плиз.
  • MetalFan © (01.01.08 19:10) [2]
    а что GetLastError говорит?
  • Ins © (01.01.08 23:35) [3]
    Первый параметр - хэндл процесса, а не идентификатор. Т.е. GetCurrentProcess вместо GetCurrentProcessID. Только имя возвращается в формате NTPath, а не DOSPath, если нужно преобразовать - вот пример:
    http://msdn2.microsoft.com/en-us/library/aa366789(VS.85).aspx
  • Ins © (01.01.08 23:39) [4]
    Сорри, не заметил [1]. Тогда см. [2]
  • MFN+ (02.01.08 06:14) [5]
    Говорит, что : Том был открыть извне...
    Имя получить не могу.
    Хотя я открывал его MapViewOfFile, но и когда не открывал, тоже не мог имя получить.
  • ага (02.01.08 12:42) [6]
    GetMappedFileName возвращает имя файла, который был отображен, а не имя секции. Если ее вызвать для секции в файле подкачки, то она и вернет > Том был открыть извне... А чего ей еще возвращать-то?
 
Конференция "WinAPI" » Как получить имя Mapped файла по его Handle [D7, WinXP]
Есть новые Нет новых   [134431   +14][b:0][p:0]