IHttpCacheKey Interface

IIS 7.0
 

Provides key information for corresponding data that is stored in a global cache.

class IHttpCacheKey

Topic

Description

Enum

Enumerates an IHttpCacheSpecificData pointer.

GetCacheName

Returns the unique name of the cache where a GL_CACHE_OPERATION event has occurred.

GetHash

Returns the unique hash code of an item in the global cache.

GetIsEqual

Returns a value indicating whether two IHttpCacheKey pointers are equivalent.

GetIsPrefix

Returns a value indicating whether two IHttpCacheKey pointers have the same prefix.

Name

Description

IFileKey

Represents key information for accessing associated data in the global file cache.

IHttpTokenKey

Represents key information for accessing associated data in the global token cache.

IUriKey

Represents key information for accessing associated data in the Uniform Resource Identifier (URI) cache.

You can retrieve an IHttpCacheKey pointer from an ICacheProvider pointer by calling the ICacheProvider::GetCacheKey method.

Example

The following code example demonstrates how to create a global module that listens for GL_CACHE_OPERATION and GL_CACHE_CLEANUP events and then writes the IHttpCacheKey information to the Event Viewer.

System_CAPS_cautionCaution

IIS 7 generates a large number of events in the Event Viewer. To avoid a log overflow error in a production environment, you should generally avoid writing cache information to the event log. For demonstration purposes, this code example writes an entry to the Event Viewer in debug mode only.

The above code writes a new event to the Event Viewer, where the Data box contains XML similar to the following.

<cacheProvider>
    <fileKey 
        path="C:\INETPUB\WWWROOT\IISSTART.HTM" 
        cacheName="FILE" 
        hash="59594512" 
        isEqual="true" 
        isPrefix="true"/>
</cacheProvider>
<cacheProvider>
    <uriKey 
        siteId="1" 
        siteName="" 
        url="/IISSTART.HTM" 
        cacheName="URI" 
        hash="-1945651104" 
        isEqual="true" 
        isPrefix="true"/>
</cacheProvider>
<cacheProvider>
    <tokenKey 
        userName="IUSR" 
        hashedPassword="abcdefg" 
        logon="3" 
        cacheName="TOKEN" 
        hash="0" 
        isEqual="true" 
        isPrefix="false"/>
</cacheProvider>

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.

Requirements

Type

Description

Client

  • IIS 7.0 on Windows Vista

  • IIS 7.5 on Windows 7

  • IIS 8.0 on Windows 8

  • IIS 10.0 on Windows 10

Server

  • IIS 7.0 on Windows Server 2008

  • 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 Technical Preview

Product

  • IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0

  • IIS Express 7.5, IIS Express 8.0, IIS Express 10.0

Header

Httpserv.h

Show: