* Sync up to trunk HEAD (r62285). Branch guys deserve the significant speedups too ;)
[reactos.git] / drivers / network / afd / afd / bind.c
index e16ab26..5bc13bf 100644 (file)
@@ -77,6 +77,7 @@ AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp,
     PFILE_OBJECT FileObject = IrpSp->FileObject;
     PAFD_FCB FCB = FileObject->FsContext;
     PAFD_BIND_DATA BindReq;
+    HANDLE UserHandle = NULL;
 
     UNREFERENCED_PARAMETER(DeviceObject);
 
@@ -99,9 +100,19 @@ AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp,
     AFD_DbgPrint(MID_TRACE,("FCB->Flags %x\n", FCB->Flags));
 
     if (NT_SUCCESS(Status))
-        FCB->State = SOCKET_STATE_BOUND;
+    {
+        Status = ObOpenObjectByPointer(FCB->AddressFile.Object,
+                                       0,
+                                       NULL,
+                                       MAXIMUM_ALLOWED,
+                                       IoFileObjectType,
+                                       Irp->RequestorMode,
+                                       &UserHandle);
+        if (NT_SUCCESS(Status))
+            FCB->State = SOCKET_STATE_BOUND;
+    }
 
     /* MSAFD relies on us returning the address file handle in the IOSB */
     return UnlockAndMaybeComplete( FCB, Status, Irp,
-                                   (ULONG_PTR)FCB->AddressFile.Handle );
+                                   (ULONG_PTR)UserHandle);
 }