Index: dispatch.c =================================================================== --- drivers/network/tcpip/tcpip/dispatch.c (revision 72626) +++ drivers/network/tcpip/tcpip/dispatch.c (working copy) @@ -400,6 +400,8 @@ IrpSp = IoGetCurrentIrpStackLocation(Irp); + IoMarkIrpPending(Irp); + /* Get associated connection endpoint file object. Quit if none exists */ TranContext = IrpSp->FileObject->FsContext; @@ -434,12 +436,11 @@ done: if (Status != STATUS_PENDING) { DispDataRequestComplete(Irp, Status, 0); - } else - IoMarkIrpPending(Irp); + } TI_DbgPrint(MAX_TRACE, ("TCP Connect returned %08x\n", Status)); - return Status; + return STATUS_PENDING; } @@ -502,6 +503,8 @@ IrpSp = IoGetCurrentIrpStackLocation(Irp); DisReq = (PTDI_REQUEST_KERNEL_DISCONNECT)&IrpSp->Parameters; + IoMarkIrpPending(Irp); + /* Get associated connection endpoint file object. Quit if none exists */ TranContext = IrpSp->FileObject->FsContext; @@ -537,12 +540,11 @@ done: if (Status != STATUS_PENDING) { DispDataRequestComplete(Irp, Status, 0); - } else - IoMarkIrpPending(Irp); + } TI_DbgPrint(MAX_TRACE, ("TCP Disconnect returned %08x\n", Status)); - return Status; + return STATUS_PENDING; } @@ -567,6 +569,8 @@ IrpSp = IoGetCurrentIrpStackLocation(Irp); + IoMarkIrpPending(Irp); + /* Get associated connection endpoint file object. Quit if none exists */ TranContext = IrpSp->FileObject->FsContext; @@ -649,12 +653,11 @@ done: if (Status != STATUS_PENDING) { DispDataRequestComplete(Irp, Status, 0); - } else - IoMarkIrpPending(Irp); + } TI_DbgPrint(MID_TRACE,("Leaving %x\n", Status)); - return Status; + return STATUS_PENDING; } @@ -807,6 +810,8 @@ IrpSp = IoGetCurrentIrpStackLocation(Irp); ReceiveInfo = (PTDI_REQUEST_KERNEL_RECEIVE)&(IrpSp->Parameters); + IoMarkIrpPending(Irp); + TranContext = IrpSp->FileObject->FsContext; if (TranContext == NULL) { @@ -844,12 +849,11 @@ done: if (Status != STATUS_PENDING) { DispDataRequestComplete(Irp, Status, BytesReceived); - } else - IoMarkIrpPending(Irp); + } TI_DbgPrint(DEBUG_IRP, ("Leaving. Status is (0x%X)\n", Status)); - return Status; + return STATUS_PENDING; } @@ -875,6 +879,8 @@ IrpSp = IoGetCurrentIrpStackLocation(Irp); DgramInfo = (PTDI_REQUEST_KERNEL_RECEIVEDG)&(IrpSp->Parameters); + IoMarkIrpPending(Irp); + TranContext = IrpSp->FileObject->FsContext; if (TranContext == NULL) { @@ -918,12 +924,11 @@ done: if (Status != STATUS_PENDING) { DispDataRequestComplete(Irp, Status, BytesReceived); - } else - IoMarkIrpPending(Irp); + } TI_DbgPrint(DEBUG_IRP, ("Leaving. Status is (0x%X)\n", Status)); - return Status; + return STATUS_PENDING; } @@ -948,6 +953,8 @@ IrpSp = IoGetCurrentIrpStackLocation(Irp); SendInfo = (PTDI_REQUEST_KERNEL_SEND)&(IrpSp->Parameters); + IoMarkIrpPending(Irp); + TranContext = IrpSp->FileObject->FsContext; if (TranContext == NULL) { @@ -990,12 +997,11 @@ done: if (Status != STATUS_PENDING) { DispDataRequestComplete(Irp, Status, BytesSent); - } else - IoMarkIrpPending(Irp); + } TI_DbgPrint(DEBUG_IRP, ("Leaving. Status is (0x%X)\n", Status)); - return Status; + return STATUS_PENDING; } @@ -1020,6 +1026,8 @@ IrpSp = IoGetCurrentIrpStackLocation(Irp); DgramInfo = (PTDI_REQUEST_KERNEL_SENDDG)&(IrpSp->Parameters); + IoMarkIrpPending(Irp); + TranContext = IrpSp->FileObject->FsContext; if (TranContext == NULL) { @@ -1074,12 +1082,11 @@ done: if (Status != STATUS_PENDING) { DispDataRequestComplete(Irp, Status, Irp->IoStatus.Information); - } else - IoMarkIrpPending(Irp); + } TI_DbgPrint(DEBUG_IRP, ("Leaving.\n")); - return Status; + return STATUS_PENDING; } Index: pool.c =================================================================== --- ntoskrnl/mm/ARM3/pool.c (revision 72626) +++ ntoskrnl/mm/ARM3/pool.c (working copy) @@ -24,7 +24,7 @@ KGUARDED_MUTEX MmPagedPoolMutex; MM_PAGED_POOL_INFO MmPagedPoolInfo; SIZE_T MmAllocatedNonPagedPool; -ULONG MmSpecialPoolTag; +ULONG MmSpecialPoolTag = ' prI'; ULONG MmConsumedPoolPercentage; BOOLEAN MmProtectFreedNonPagedPool; SLIST_HEADER MiNonPagedPoolSListHead; Index: irp.c =================================================================== --- ntoskrnl/io/iomgr/irp.c (revision 72626) +++ ntoskrnl/io/iomgr/irp.c (working copy) @@ -566,7 +566,7 @@ Prcb = KeGetCurrentPrcb(); /* Figure out which Lookaside List to use */ - if ((StackSize <= 8) && (ChargeQuota == FALSE || Prcb->LookasideIrpFloat > 0)) + if (0 && (StackSize <= 8) && (ChargeQuota == FALSE || Prcb->LookasideIrpFloat > 0)) { /* Set Fixed Size Flag */ Flags |= IRP_ALLOCATED_FIXED_SIZE;