驱动中如何调用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__));
}