Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 86 of file ports.c.
Referenced by TCPAllocatePort(), and UDPAllocatePort().
{ ULONG AllocatedPort; KIRQL OldIrql; if ((Lowest < PortSet->StartingPort) || (Highest >= PortSet->StartingPort + PortSet->PortsToOversee)) { return -1; } Lowest -= PortSet->StartingPort; Highest -= PortSet->StartingPort; KeAcquireSpinLock( &PortSet->Lock, &OldIrql ); AllocatedPort = RtlFindClearBits( &PortSet->ProtoBitmap, 1, Lowest ); if( AllocatedPort != (ULONG)-1 && AllocatedPort <= Highest) { RtlSetBit( &PortSet->ProtoBitmap, AllocatedPort ); AllocatedPort += PortSet->StartingPort; KeReleaseSpinLock( &PortSet->Lock, OldIrql ); return htons(AllocatedPort); } KeReleaseSpinLock( &PortSet->Lock, OldIrql ); return -1; }