Index: tcp.c =================================================================== --- sdk/lib/drivers/ip/transport/tcp/tcp.c (revision 72626) +++ sdk/lib/drivers/ip/transport/tcp/tcp.c (working copy) @@ -352,10 +352,13 @@ } } - if (NT_SUCCESS(Status)) + connaddr.addr = RemoteAddress.Address.IPv4Address; + Status = TCPTranslateError(LibTCPConnect(Connection, + &connaddr, + RemotePort)); + + if (Status == STATUS_PENDING) { - connaddr.addr = RemoteAddress.Address.IPv4Address; - Bucket = ExAllocateFromNPagedLookasideList(&TdiBucketLookasideList); if (!Bucket) { @@ -362,15 +365,11 @@ UnlockObject(Connection, OldIrql); return STATUS_NO_MEMORY; } - + Bucket->Request.RequestNotifyObject = (PVOID)Complete; Bucket->Request.RequestContext = Context; - + InsertTailList( &Connection->ConnectRequest, &Bucket->Entry ); - - Status = TCPTranslateError(LibTCPConnect(Connection, - &connaddr, - RemotePort)); } }