SegDesc = (PSEGMENT_DESCRIPTOR)((PUCHAR)GdtBase + (Selector & ~0x7));
Hi, I didn't understand this line. Should (Selector & ~0x7) be multiplied by 8? because GdtBase is unsigned char*,it's 8 bits,Adding 1 means that the address is increased by 8 bits, and segment desciptor is 64 bits
If it's okay, how should this line code be interpreted?
SegDesc = (PSEGMENT_DESCRIPTOR)((PUCHAR)GdtBase + (Selector & ~0x7));
Hi, I didn't understand this line. Should (Selector & ~0x7) be multiplied by 8? because GdtBase is unsigned char*,it's 8 bits,Adding 1 means that the address is increased by 8 bits, and segment desciptor is 64 bits
If it's okay, how should this line code be interpreted?