internal unsafe void AttachToUrlGroup() { CheckDisposed(); // Set the association between request queue and url group. After this, requests for registered urls will // get delivered to this request queue. var info = new HttpApiTypes.HTTP_BINDING_INFO(); info.Flags = HttpApiTypes.HTTP_FLAGS.HTTP_PROPERTY_FLAG_PRESENT; info.RequestQueueHandle = Handle.DangerousGetHandle(); var infoptr = new IntPtr(&info); _urlGroup.SetProperty(HttpApiTypes.HTTP_SERVER_PROPERTY.HttpServerBindingProperty, infoptr, (uint)BindingInfoSize); }
internal unsafe void DetachFromUrlGroup() { CheckDisposed(); // Break the association between request queue and url group. After this, requests for registered urls // will get 503s. // Note that this method may be called multiple times (Stop() and then Abort()). This // is fine since http.sys allows to set HttpServerBindingProperty multiple times for valid // Url groups. var info = new HttpApiTypes.HTTP_BINDING_INFO(); info.Flags = HttpApiTypes.HTTP_FLAGS.NONE; info.RequestQueueHandle = IntPtr.Zero; var infoptr = new IntPtr(&info); _urlGroup.SetProperty(HttpApiTypes.HTTP_SERVER_PROPERTY.HttpServerBindingProperty, infoptr, (uint)BindingInfoSize, throwOnError: false); }