PIMAGE_NT_HEADERS NtHeader;
PVOID ImportDirectory;
ULONG ImportDirectorySize;
- PIMAGE_IMPORT_MODULE_DIRECTORY ImportModuleDirectory;
+ PIMAGE_IMPORT_DESCRIPTOR ImportModuleDirectory;
PVOID DriverBase;
PCH Name;
ULONG i;
return(STATUS_UNSUCCESSFUL);
}
/* Process each import module */
- ImportModuleDirectory = (PIMAGE_IMPORT_MODULE_DIRECTORY)ImportDirectory;
+ ImportModuleDirectory = (PIMAGE_IMPORT_DESCRIPTOR)ImportDirectory;
DPRINT("Processeing import directory at %p\n", ImportModuleDirectory);
- while (ImportModuleDirectory->dwRVAModuleName)
+ while (ImportModuleDirectory->Name)
{
/* Check to make sure that import lib is kernel */
- Name = (PCHAR) DriverBase + ImportModuleDirectory->dwRVAModuleName;
+ Name = (PCHAR) DriverBase + ImportModuleDirectory->Name;
if (strcmp(Name, "scsiport.sys") != 0)
{
/* Get the import address list */
ImportAddressList = (PVOID *) ((PUCHAR)DriverBase +
- ImportModuleDirectory->dwRVAFunctionAddressList);
+ (ULONG_PTR)ImportModuleDirectory->FirstThunk);
/* Get the list of functions to import */
- if (ImportModuleDirectory->dwRVAFunctionNameList != 0)
+ if (ImportModuleDirectory->OriginalFirstThunk != 0)
{
FunctionNameList = (PULONG) ((PUCHAR)DriverBase +
- ImportModuleDirectory->dwRVAFunctionNameList);
+ (ULONG_PTR)ImportModuleDirectory->OriginalFirstThunk);
}
else
{
FunctionNameList = (PULONG) ((PUCHAR)DriverBase +
- ImportModuleDirectory->dwRVAFunctionAddressList);
+ (ULONG_PTR)ImportModuleDirectory->FirstThunk);
}
/* Walk through function list and fixup addresses */
while (*FunctionNameList != 0L)