j'ai essayé d'obtenir l'adresse IDT dans mon chauffeur, j'ai fait fonction asm qui retourne ce idtr contient:magasin ITDR sur x64
.data
myData dq 0
.code
Function PROC
sidt myData
mov rax, myData
ret
Function ENDP
END
Mais l'adresse que je reçois est bizarre, par exemple dans windbg:
r idtr
idtr=fffff80000b95080
Cependant, mon pilote montre:
idtr = f80000b950800fff
J'ai lu que sur x64 IDTR contient l'adresse de base 64 bits de IDT t capable. J'apprécierais que quelqu'un m'explique pourquoi ma sortie n'est pas la même que celle de WinDbg.
Donc je ne devrais pas retourner cette valeur, mais passer la structure appropriée à cette fonction et remplir correctement avec la limite et la base? Merci pour votre réponse. – Vasilij
@Vasilij: Oui, vous pouvez passer l'adresse d'une structure qui contient 10 octets (2 + 8) et 'SIDT' remplira les valeurs correctement. – casablanca