mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
236 lines
4.5 KiB
236 lines
4.5 KiB
/*++
|
|
|
|
Copyright (c) 1994 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
urlcache.h
|
|
|
|
Abstract:
|
|
|
|
Contains the Internet Cache mangemant data types and APIs definitions.
|
|
|
|
Author:
|
|
|
|
Madan Appiah (madana) 26-Apr-1995
|
|
|
|
Environment:
|
|
|
|
User Mode - Win32
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _CACHEAPI_
|
|
#define _CACHEAPI_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if !defined(_URLCACHEAPI_)
|
|
#define URLCACHEAPI DECLSPEC_IMPORT
|
|
#else
|
|
#define URLCACHEAPI
|
|
#endif
|
|
|
|
//
|
|
// datatype definitions.
|
|
//
|
|
|
|
//
|
|
// cache entry type flags.
|
|
//
|
|
|
|
#define NORMAL_CACHE_ENTRY 0x00000001
|
|
#define STABLE_CACHE_ENTRY 0x00000002
|
|
#define STICKY_CACHE_ENTRY 0x00000004
|
|
|
|
#define UNCOMMITTED_CACHE_ENTRY 0x00010000
|
|
#define OCX_CACHE_ENTRY 0x00020000
|
|
|
|
typedef struct _CACHE_ENTRY_INFO% {
|
|
TCHAR% LocalFileName[MAX_PATH];
|
|
DWORD CacheEntryType;
|
|
DWORD dwUseCount; // current users count of the cache entry.
|
|
DWORD dwHitRate; // num of times the cache entry was retrieved.
|
|
DWORD dwSizeLow;
|
|
DWORD dwSizeHigh;
|
|
FILETIME LastModifiedTime;
|
|
FILETIME ExpireTime;
|
|
FILETIME LastAccessTime;
|
|
DWORD dwReserved;
|
|
CHAR SourceURLName[ANYSIZE_ARRAY];
|
|
} CACHE_ENTRY_INFO%, *LPCACHE_ENTRY_INFO%;
|
|
|
|
typedef struct _CACHE_CONFIG_PATH_ENTRY% {
|
|
TCHAR% CachePath[MAX_PATH];
|
|
DWORD dwCacheSize; // in KBytes
|
|
} CACHE_CONFIG_PATH_ENTRY%, *LPCACHE_CONFIG_PATH_ENTRY%;
|
|
|
|
typedef struct _CACHE_CONFIG_INFO% {
|
|
DWORD dwFreshnessInterval;
|
|
DWORD dwCleanupInterval;
|
|
DWORD dwCleanupFactor;
|
|
DWORD dwTimeToCleanup;
|
|
BOOL PersistentCache;
|
|
DWORD dwNumCachePaths;
|
|
CACHE_CONFIG_PATH_ENTRY% CachePaths[ANYSIZE_ARRAY];
|
|
} CACHE_CONFIG_INFO%, *LPCACHE_CONFIG_INFO%;
|
|
|
|
//
|
|
// Cache APIs
|
|
//
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
CreateUrlCacheEntry%(
|
|
IN LPCSTR lpszUrlName,
|
|
IN DWORD dwExpectedFileSize,
|
|
OUT LPTSTR% lpszFileName,
|
|
IN DWORD dwReserved
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
CommitUrlCacheEntry%(
|
|
IN LPCSTR lpszUrlName,
|
|
IN LPCTSTR% lpszLocalFileName,
|
|
IN FILETIME ExpireTime,
|
|
IN FILETIME LastModifiedTime,
|
|
IN DWORD CacheEntryType,
|
|
IN DWORD dwHeaders,
|
|
IN DWORD dwReserved
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
RetrieveUrlCacheEntry%(
|
|
IN LPCSTR lpszUrlName,
|
|
OUT LPCTSTR% lpszLocalFileName,
|
|
OUT FILETIME *lpLastModifiedTime OPTIONAL,
|
|
OUT BOOL *lpIsExpired,
|
|
OUT DWORD *lpdwHeaders OPTIONAL,
|
|
IN DWORD dwReserved
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
UnlockUrlCacheEntry(
|
|
IN LPCSTR lpszUrlName,
|
|
IN DWORD dwReserved
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
UrlCacheValidate(
|
|
IN DWORD dwReserved
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
GetUrlCacheEntryInfo%(
|
|
IN LPCSTR lpszUrlName,
|
|
OUT LPCACHE_ENTRY_INFO% lpCacheEntryInfo,
|
|
IN OUT LPDWORD lpdwCacheEntryInfoBufferSize
|
|
);
|
|
|
|
#define CACHE_ENTRY_ATTRIBUTE_FC 0x00000004
|
|
#define CACHE_ENTRY_HITRATE_FC 0x00000010
|
|
#define CACHE_ENTRY_MODTIME_FC 0x00000040
|
|
#define CACHE_ENTRY_EXPTIME_FC 0x00000080
|
|
#define CACHE_ENTRY_ACCTIME_FC 0x00000100
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
SetUrlCacheEntryInfo%(
|
|
IN LPCSTR lpszUrlName,
|
|
IN LPCACHE_ENTRY_INFO% lpCacheEntryInfo,
|
|
IN DWORD dwFieldControl
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
DeleteUrlCacheEntry(
|
|
IN LPCSTR lpszUrlName
|
|
);
|
|
|
|
URLCACHEAPI
|
|
HANDLE
|
|
WINAPI
|
|
FindFirstUrlCacheEntry%(
|
|
IN LPCSTR lpszUrlSearchPattern,
|
|
OUT LPCACHE_ENTRY_INFO% lpFirstCacheEntryInfo,
|
|
IN OUT LPDWORD lpdwFirstCacheEntryInfoBufferSize
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
FindNextUrlCacheEntry%(
|
|
IN HANDLE hEnumHandle,
|
|
OUT LPCACHE_ENTRY_INFO% lpNextCacheEntryInfo,
|
|
IN OUT LPDWORD lpdwNextCacheEntryInfoBufferSize
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
FindCloseUrlCache(
|
|
IN HANDLE hEnumHandle
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
FreeUrlCacheSpace%(
|
|
IN LPCTSTR% lpszCachePath,
|
|
IN DWORD dwSize,
|
|
IN DWORD dwSizeType
|
|
);
|
|
|
|
//
|
|
// config APIs.
|
|
//
|
|
|
|
#define CACHE_CONFIG_FRESHNESS_INTERVAL_FC 0x00000001
|
|
#define CACHE_CONFIG_CLEANUP_INTERVAL_FC 0x00000002
|
|
#define CACHE_CONFIG_CLEANUP_FACTOR_FC 0x00000004
|
|
#define CACHE_CONFIG_CLEANUP_TIME_FC 0x00000008
|
|
#define CACHE_CONFIG_PERSISTENT_CACHE_FC 0x00000010
|
|
#define CACHE_CONFIG_FORCE_CLEANUP_FC 0x00000020
|
|
#define CACHE_CONFIG_DISK_CACHE_PATHS_FC 0x00000040
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
GetUrlCacheConfigInfo%(
|
|
LPCACHE_CONFIG_INFO% lpCacheConfigInfo,
|
|
IN OUT LPDWORD lpdwCacheConfigInfoBufferSize,
|
|
DWORD dwFieldControl
|
|
);
|
|
|
|
URLCACHEAPI
|
|
BOOL
|
|
WINAPI
|
|
SetUrlCacheConfigInfo%(
|
|
LPCACHE_CONFIG_INFO% lpCacheConfigInfo,
|
|
DWORD dwFieldControl
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#endif // _CACHEAPI_
|
|
|