在缓存提供程序上设置特定于缓存的数据。
语法
virtual VOID SetCacheRecord(
IHttpCacheSpecificData* pCacheRecord
) = 0;
parameters
pCacheRecord
指向 IHttpCacheSpecificData 值的指针。
备注
参数 pCacheRecord 不得为 NULL,因为以后对 GetCacheRecord 方法的内部调用可能会导致访问冲突。
重要
方法 SetCacheRecord 是 IIS 基础结构的一部分,不应直接从代码使用。
实现者须知
ICacheProvider 实现者将指针声明 private``IHttpCacheSpecificData 为成员数据。 调用这些实现器的构造函数时,会将此成员数据分配给指针 IHttpCacheSpecificData 。 在调用 SetCacheRecord之前,调用方负责首先对IHttpCacheSpecificData指针调用 IHttpCacheSpecificData::ReferenceCacheData;SetCacheRecord然后,实现者将private变量分配给此IHttpCacheSpecificData指针。
调用 时SetCacheRecord,实现者应首先检查当前private成员指针是否为非 NULL。 private如果数据非 NULL,请首先对此当前数据调用 IHttpCacheSpecificData::D ereferenceCacheData,以便可以释放它,但始终将private变量pCacheRecord分配给 参数。
下表是一对一接口映射的示例,这些映射必须从 GetCacheKey 和 GetCacheRecord 接口的同一实现程序 ICacheProvider 返回的方法。
| GetCacheKey 接口 | GetCacheRecord 接口 |
|---|---|
| IFileKey | IHttpFileInfo |
| IHttpTokenKey | IHttpTokenEntry |
| IHttpCacheKey | IHttpCacheSpecificData |
对调用者的说明
ICacheProvider 实现者获取指针的 IHttpCacheSpecificData 所有权。 在调用 SetCacheRecord之前,首先对指针调用 IHttpCacheSpecificData::ReferenceCacheData ,以便此指针具有一个所有者。
要求
| 类型 | 说明 |
|---|---|
| 客户端 | - Windows Vista 上的 IIS 7.0 - Windows 7 上的 IIS 7.5 - Windows 8 上的 IIS 8.0 - Windows 10 上的 IIS 10.0 |
| 服务器 | - Windows Server 2008 上的 IIS 7.0 - Windows Server 2008 R2 上的 IIS 7.5 - Windows Server 2012 上的 IIS 8.0 - Windows Server 2012 R2 上的 IIS 8.5 - Windows Server 2016 上的 IIS 10.0 |
| 产品 | - 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 |