PFILE_OBJECT FileObject = IrpSp->FileObject;
PAFD_FCB FCB = FileObject->FsContext;
PAFD_BIND_DATA BindReq;
+ HANDLE UserHandle = NULL;
UNREFERENCED_PARAMETER(DeviceObject);
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);
}