| title | CGlobalModule::OnGlobalThreadCleanup Method |
|---|---|
| description | Describes the CGlobalModule::OnGlobalThreadCleanup method and details its syntax, parameters, return value, remarks, code example, and requirements. |
| ms.date | 10/07/2016 |
| ms.assetid | 2aaac10f-de71-71ff-5547-a098f91e717d |
Represents the method that will handle a GlobalThreadCleanup event, which occurs when IIS returns a thread to the thread pool.
virtual GLOBAL_NOTIFICATION_STATUS OnGlobalThreadCleanup(
IN IGlobalThreadCleanupProvider* pProvider
); pProvider
[IN] A pointer to an IGlobalThreadCleanupProvider interface.
A GLOBAL_NOTIFICATION_STATUS value.
When a global module has registered for the GL_THREAD_CLEANUP notification, IIS will call the module's OnGlobalThreadCleanup method when a thread is returned to the thread pool after an operation has completed.
Note
Global modules can register for the GlobalThreadCleanup event notification by registering for GL_THREAD_CLEANUP in the module's RegisterModule function.
The following code example demonstrates how to create an HTTP module that performs the following tasks:
-
The module registers for the
GL_THREAD_CLEANUPnotification. -
The module creates a CGlobalModule class that contains an
OnGlobalThreadCleanupmethod. This method performs the following tasks:-
Retrieves an IHttpApplication interface by using the IGlobalThreadCleanupProvider::GetApplication method.
-
Retrieves the application identifier of the current context's application by using the IHttpApplication::GetApplicationId method.
-
Writes the application identifier information as an event to the application log of the Event Viewer.
-
-
The module removes the
CGlobalModuleclass from memory and then exits.
[!code-cppIGlobalThreadCleanupProviderGetApplication#1]
Your module must export the RegisterModule function. You can export this function by creating a module definition (.def) file for your project, or you can compile the module by using the /EXPORT:RegisterModule switch. For more information, see Walkthrough: Creating a Global-Level HTTP Module By Using Native Code.
You can optionally compile the code by using the __stdcall (/Gz) calling convention instead of explicitly declaring the calling convention for each function.
| Type | Description |
|---|---|
| Client | - IIS 7.0 on [!INCLUDEwinvista] - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
| Server | - IIS 7.0 on [!INCLUDEwinsrv2008] - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 |
| Product | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - [!INCLUDEiisexp75], [!INCLUDEiisexp80], [!INCLUDEiisexp100] |
| Header | Httpserv.h |