private unsafe void DetachRequestQueueFromUrlGroup() { UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO http_binding_info = new UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO { Flags = UnsafeNclNativeMethods.HttpApi.HTTP_FLAGS.NONE, RequestQueueHandle = IntPtr.Zero }; IntPtr pPropertyInfo = new IntPtr((void*) &http_binding_info); uint num = UnsafeNclNativeMethods.HttpApi.HttpSetUrlGroupProperty(this.m_UrlGroupId, UnsafeNclNativeMethods.HttpApi.HTTP_SERVER_PROPERTY.HttpServerBindingProperty, pPropertyInfo, (uint) Marshal.SizeOf(typeof(UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO))); if ((num != 0) && Logging.On) { Logging.PrintError(Logging.HttpListener, this, "DetachRequestQueueFromUrlGroup", SR.GetString("net_listener_detach_error", new object[] { num })); } }
private void DetachRequestQueueFromUrlGroup() { GlobalLog.Assert(m_UrlGroupId != 0, "DetachRequestQueueFromUrlGroup can't detach using Url group id 0."); // // 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. // UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO info = new UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO(); info.Flags = UnsafeNclNativeMethods.HttpApi.HTTP_FLAGS.NONE; info.RequestQueueHandle = IntPtr.Zero; IntPtr infoptr = new IntPtr(&info); uint statusCode = UnsafeNclNativeMethods.HttpApi.HttpSetUrlGroupProperty(m_UrlGroupId, UnsafeNclNativeMethods.HttpApi.HTTP_SERVER_PROPERTY.HttpServerBindingProperty, infoptr, (uint)Marshal.SizeOf(typeof(UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO))); if (statusCode != UnsafeNclNativeMethods.ErrorCodes.ERROR_SUCCESS) { if (Logging.On) Logging.PrintError(Logging.HttpListener, this, "DetachRequestQueueFromUrlGroup", SR.GetString(SR.net_listener_detach_error, statusCode)); } }
private unsafe void AttachRequestQueueToUrlGroup() { UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO http_binding_info = new UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO { Flags = UnsafeNclNativeMethods.HttpApi.HTTP_FLAGS.HTTP_INITIALIZE_SERVER, RequestQueueHandle = this.DangerousGetHandle() }; IntPtr info = new IntPtr((void*) &http_binding_info); this.SetUrlGroupProperty(UnsafeNclNativeMethods.HttpApi.HTTP_SERVER_PROPERTY.HttpServerBindingProperty, info, (uint) Marshal.SizeOf(typeof(UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO))); }
private void AttachRequestQueueToUrlGroup() { // // Set the association between request queue and url group. After this, requests for registered urls will // get delivered to this request queue. // UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO info = new UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO(); info.Flags = UnsafeNclNativeMethods.HttpApi.HTTP_FLAGS.HTTP_PROPERTY_FLAG_PRESENT; info.RequestQueueHandle = DangerousGetHandle(); IntPtr infoptr = new IntPtr(&info); SetUrlGroupProperty(UnsafeNclNativeMethods.HttpApi.HTTP_SERVER_PROPERTY.HttpServerBindingProperty, infoptr, (uint)Marshal.SizeOf(typeof(UnsafeNclNativeMethods.HttpApi.HTTP_BINDING_INFO))); }