Source code of Windows XP (NT5)
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.
|
|
typedef enum { AUTH_PUBLIC = 0, AUTH_USER = 1, AUTH_ADMIN = 2, AUTH_MAX = 99 } AUTHLEVEL;
typedef struct { PWSTR wszExt; PWSTR wszPath; } EXTMAP, *PEXTMAP;
typedef struct { int iURLLen; PSTR pszURL; int iPathLen; PWSTR wszPath; DWORD dwPermissions; AUTHLEVEL AuthLevel; SCRIPT_TYPE ScriptType; // Does vroot physical path map to an ASP or ISAPI?
WCHAR *wszUserList; BOOL bRootDir; int nExtensions; PEXTMAP pExtMap; } VROOTINFO, *PVROOTINFO;
class CVRoots { CRITICAL_SECTION m_csVroot; int m_nVRoots; PVROOTINFO m_pVRoots;
BOOL LoadExtensionMap (PVROOTINFO pvr, HKEY rootreg); VOID FreeExtensionMap (PVROOTINFO pvr); BOOL FindExtInURL (PSTR pszInputURL, PSTR *ppszStart, PSTR *ppszEnd); PVROOTINFO MatchVRoot(PCSTR pszInputURL, int iInputLen); BOOL FillVRoot(PVROOTINFO pvr, LPWSTR wszURL, LPWSTR wszPath); BOOL Init(VOID); VOID Cleanup(VOID); VOID Sort(VOID);
public: CVRoots() { ZEROMEM(this); Init(); } ~CVRoots() { Cleanup(); } DWORD Count() { DWORD cVRoots;
EnterCriticalSection(&m_csVroot); cVRoots = m_nVRoots; LeaveCriticalSection(&m_csVroot);
return cVRoots; }
BOOL AddVRoot(LPWSTR szUrl, LPWSTR szPath); BOOL RemoveVRoot(LPWSTR szUrl); PWSTR URLAtoPathW(PSTR pszInputURL, PDWORD pdwPerm=0, AUTHLEVEL* pAuthLevel=0, SCRIPT_TYPE *pScriptType=0, PSTR *ppszPathInfo=0, WCHAR **ppwszUserList=0); PWSTR MapExtToPath (PSTR pszInputURL, PSTR *ppszEndOfURL); };
|