使用NtQueryInformationFile函数获得不到完整路径

#include <windows.h>
#include <iostream>
using namespace std;


typedef struct _OBJECT_NAME_INFORMATION {
    WORD Length;
    WORD MaximumLength;
    LPWSTR Buffer;
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;

typedef long(__stdcall*PNtQueryObject)(HANDLE ObjectHandle,ULONG ObjectInformationClass,PVOID ObjectInformation,ULONG ObjectInformationLength,PULONG ReturnLength);

int main(){
    PNtQueryObject NtQueryObject(reinterpret_cast<PNtQueryObject>(GetProcAddress(GetModuleHandleW(L"ntdll.dll"),"NtQueryObject")));
    OBJECT_NAME_INFORMATION name,*pname;ULONG len;
    HANDLE hFile=CreateFile(L"D:\\xiao\\xiaoma.txt",FILE_READ_DATA,1,0,OPEN_EXISTING,0,0);
    NtQueryObject(hFile,1,&name,sizeof name,&len);
    pname=reinterpret_cast<POBJECT_NAME_INFORMATION>(new char[len]);
    NtQueryObject(hFile,1,pname,len,&len);
    wcout<<pname->Buffer<<endl;
    return 0;
}


posted @ 2015-01-22 09:05  QQ76211822  阅读(975)  评论(0编辑  收藏  举报