er will memcpy() aufrufen, weil du ein struct (=großes dings) kopieren willst.
memcpy:
void * memcpy(void * dest, const void * src, size_t num)
{
char *_dest = (char*)dest, *_src = (char*)src;
while(num--)
*_dest++ = *_src++;
return dest;
}
und dann würde ich explizit den aufruf hinschreiben:
void GetTSS(WORD TaskID, struct TSS* TaskStateSegment)
{
struct TSS* Base = (struct TSS*)(0x20000 + TaskID*100);
memcpy((void*)TaskStateSegment, (void*)Base, sizeof(struct TSS));
}
anders lösen: einfach jedes member einzeln kopieren:
void GetTSS(WORD TaskID, struct TSS* TaskStateSegment)
{
struct TSS* Base = (struct TSS*)(0x20000 + TaskID*100);
TaskStateSegment->eax = Base->eax;
TaskStateSegment->ebx = Base->ebx;
TaskStateSegment->ecx = Base->ecx;
/* usw */
}