首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

驱动中怎么调用RtlDosPathNameToNtPathName_U等ntdll的未公开函数

2012-12-20 
驱动中如何调用RtlDosPathNameToNtPathName_U等ntdll的未公开函数?typedef struct _PRELATIVE_NAME{UNICOD

驱动中如何调用RtlDosPathNameToNtPathName_U等ntdll的未公开函数?


typedef struct _PRELATIVE_NAME{
  UNICODE_STRING Name;
  HANDLE CurrentDir;
} PRELATIVE_NAME, *PPRELATIVE_NAME;

typedef  NTSTATUS (*DOSPATH_TO_NTPATH)(
           IN PCWSTR DosPathName,
           OUT PUNICODE_STRING NtPathName,
           OUT PWSTR* FilePathInNtPathName OPTIONAL,
           OUT PRELATIVE_NAME* RelativeName OPTIONAL
           );
DOSPATH_TO_NTPATH RtlDosPathNameToNtPathName_U;

  UNICODE_STRING ustrNtName = {0};
  WCHAR szDosName[MAX_PATH] = L"C:\\test\\hello.exe";

  if (RtlDosPathNameToNtPathName_U(szDosName,&ustrNtName,NULL,NULL))
  {
    KdPrint(("%s: [%s] RtlDosPathNameToNtPathName_U Success \n",__MYNAME__,__FUNCTION__));
  }
  else
  {
    KdPrint(("%s: [%s] RtlDosPathNameToNtPathName_U Failed \n",__MYNAME__,__FUNCTION__));
  }



直接蓝了

还有一个问题
驱动中调用Zw*等函数到底是ntdll.dll导出的,还是ntoskrnl.exe导出的?
[最优解释]
MmGetSystemRoutineAddress
[其他解释]
DOSPATH_TO_NTPATH RtlDosPathNameToNtPathName_U;

一个函数指针,没有得到正确地址,就调用了。
[其他解释]
除了这个函数,还有什么方法可以在内核将DOS路径解析成NT路径
[其他解释]


没人知道吗?难道要插APC
[其他解释]
该回复于2012-02-28 13:38:10被版主删除

热点排行