title | ms.date | description | ms.assetid |
---|---|---|---|
IHttpModuleRegistrationInfo::SetRequestNotifications Method |
10/07/2016 |
Registers the request-level notification for a module, such as an S_OK value that indicates the operation was successful. |
9cd93045-71ee-c3ce-fdce-33f3fb105a05 |
Registers the request-level notifications for a module.
virtual HRESULT SetRequestNotifications(
IN IHttpModuleFactory* pModuleFactory,
IN DWORD dwRequestNotifications,
IN DWORD dwPostRequestNotifications
) = 0;
pModuleFactory
[IN] A pointer to an IHttpModuleFactory interface.
dwRequestNotifications
[IN] A bitmask value that contains the request notifications to register. (Defined in Httpserv.h.)
dwPostRequestNotifications
[IN] A bitmask value that contains the post-event notifications to register. (Defined in Httpserv.h.)
An HRESULT
. Possible values include, but are not limited to, those in the following table.
Value | Description |
---|---|
S_OK | Indicates that the operation was successful. |
ERROR_ALREADY_EXISTS | Indicates that the module has already been registered. |
The SetRequestNotifications
method registers the request-level notifications for a CHttpModule class. A module can register for two events for each notification: the event notification, as indicated by the bitmask in the dwRequestNotifications
parameter, and the post-event notification, as indicated by the bitmask in the dwPostRequestNotifications
parameter.
For example, an HTTP module could register for the RQ_AUTHENTICATE_REQUEST notification and the post-event notification for that same notification. In so doing, the module could provide additional processing functionality for the event notification and clean up any processing details in the post-event notification.
Note
Some events do not have post-event notification. Use 0 for the dwPostRequestNotifications
parameter when you do not want notification or when post-event notification is not supported.
Note
The bitmask values for request-level notifications are defined in the Httpserv.h file.
The SetRequestNotifications
method requires a pointer to an IHttpModuleFactory interface, which IIS will use to create an instance of a CHttpModule
class. This factory must handle creating the instance of the CHttpModule
class and returning any error messages if the class cannot be created.
The following example demonstrates how to create an HTTP module that uses the RegisterModule function and the following methods to register a module for global-level and request-level notifications.
-
The
SetRequestNotifications
method registers aCHttpModule
class for a request-level OnBeginRequest notification. -
The SetPriorityForRequestNotification method sets the module's priority for request-level notifications.
-
The SetGlobalNotifications method registers a CGlobalModule class for a global-level OnGlobalPreBeginRequest notification.
-
The SetPriorityForGlobalNotification method sets the module's priority for global-level notification.
The module responds to the registered notifications and writes entries to the application log in the Event Viewer.
Note
The entries in the Event Viewer will display "IISADMIN" as the event source.
[!code-cppIHttpModuleRegistrationInfoSetRequestNotifications#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 Request-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 |
IHttpModuleRegistrationInfo Interface
IHttpModuleRegistrationInfo::SetGlobalNotifications Method
IHttpModuleRegistrationInfo::SetPriorityForGlobalNotification Method
IHttpModuleRegistrationInfo::SetPriorityForRequestNotification Method
PFN_REGISTERMODULE Function