19#include "apr_private.h"
20#include "apr_arch_file_io.h"
28#include "apr_arch_misc.h"
88 return (
prot << scope);
102 0, 0, 0, 0, 0, 0, 0, &
worldid))
234#if APR_HAS_UNICODE_FS
252 tag =
fd.dwReserved0;
255#if APR_HAS_ANSI_FS || 1
268 tag =
fd.dwReserved0;
275 return tag & 0x20000000;
375 &
fi,
sizeof(
fi), 5) == 0)
376 && (
sb.Status == 0)) {
377 finfo->
csize =
fi.AllocationSize;
391#if APR_HAS_LARGE_FILES
397 finfo->
csize = 0x7fffffff;
427 memset(finfo,
'\0',
sizeof(*finfo));
433#if APR_HAS_LARGE_FILES
439 finfo->
size = 0x7fffffff;
460 if (!
wininfo->ftLastWriteTime.dwLowDateTime
461 && !
wininfo->ftLastWriteTime.dwHighDateTime
580#if APR_HAS_UNICODE_FS
601#if APR_HAS_UNICODE_FS
662 isroot = (root && *root && !(*test));
726#if APR_HAS_UNICODE_FS
786#if APR_HAS_UNICODE_FS
803#if APR_HAS_UNICODE_FS
812#if APR_HAS_UNICODE_FS
829 if (
flags == 0xFFFFFFFF)
848#if APR_HAS_UNICODE_FS
static APR_INLINE void FileTimeToAprTime(apr_time_t *result, FILETIME *input)
static APR_INLINE void AprTimeToFileTime(LPFILETIME pft, apr_time_t t)
APR Miscellaneous library routines.
#define APR_STATUS_IS_EACCES(s)
const char apr_ssize_t int flags
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
const char int apr_pool_t * pool
#define APR_FROM_OS_ERROR(e)
#define apr_get_os_error()
#define APR_FILE_ATTR_READONLY
#define APR_FILE_ATTR_HIDDEN
apr_int32_t apr_fileperms_t
apr_uint32_t apr_fileattrs_t
const char apr_fileperms_t perms
apr_fileattrs_t attributes
apr_fileattrs_t apr_fileattrs_t attr_mask
const char apr_int32_t wanted
#define APR_FILEPATH_NATIVE
apr_size_t const char * filename
struct apr_file_t * filehand
apr_fileperms_t protection
#define TRUSTEE_IS_WELL_KNOWN_GROUP
#define FILE_ATTRIBUTE_REPARSE_POINT
#define FILE_ATTRIBUTE_DEVICE
#define GetNamedSecurityInfoW
#define ELSE_WIN_OS_IS_ANSI
typedef HANDLE(WINAPI *apr_winapi_fpt_CreateToolhelp32Snapshot)(DWORD dwFlags
#define GetFileAttributesExA
APR_DECLARE_DATA apr_oslevel_e apr_os_level
#define GetCompressedFileSizeA
#define GetFileAttributesExW
#define ZwQueryInformationFile
#define IF_WIN_OS_IS_UNICODE
#define GetNamedSecurityInfoA
typedef DWORD(WINAPI *apr_winapi_fpt_GetCompressedFileSizeA)(IN LPCSTR lpFileName
#define GetCompressedFileSizeW
#define GetEffectiveRightsFromAclW
static apr_status_t resolve_ident(apr_finfo_t *finfo, const char *fname, apr_int32_t wanted, apr_pool_t *pool)
static apr_fileperms_t convert_prot(ACCESS_MASK acc, prot_scope_e scope)
apr_status_t more_finfo(apr_finfo_t *finfo, const void *ufile, apr_int32_t wanted, int whatfile)
static apr_status_t test_safe_name(const char *name)
static void free_world(void)
int fillin_fileinfo(apr_finfo_t *finfo, WIN32_FILE_ATTRIBUTE_DATA *wininfo, int byhandle, int finddata, const char *fname, apr_int32_t wanted)
static void resolve_prot(apr_finfo_t *finfo, apr_int32_t wanted, PACL dacl)
static int reparse_point_is_link(WIN32_FILE_ATTRIBUTE_DATA *wininfo, int finddata, const char *fname)
static apr_status_t free_localheap(void *heap)
static apr_status_t guess_protection_bits(apr_finfo_t *finfo, apr_int32_t wanted)