Irp->Tail.Overlay.DriverContext[0] = context;InsertTailList ( &List, &Irp->Tail.Overlay.ListEntry);
這樣就免於還要用另外一個資料結構去包 LIST_ENTRY 跟 IRP 了,蠻方便的。
至於要取出嘛:
PUCHAR ptr = (PUCHAR)RemoveHeadList (&List); PIRP pIrp = (PIRP) (((PUCHAR) ptr) -FIELDOFFSET (IRP, Tail.Overlay.ListEntry));
這樣就抓出 LIST_ENTRY 內的 IRP 了。
No comments:
Post a Comment