Ruby  2.7.2p137(2020-10-01revision5445e0435260b449decf2ac16f9d09bae3cafe72)
file.h
Go to the documentation of this file.
1 #ifndef RUBY_WIN32_FILE_H
2 #define RUBY_WIN32_FILE_H
3 
4 #define MAX_REPARSE_PATH_LEN 4092
5 
6 enum {
8 };
9 /* License: Ruby's */
10 typedef struct {
11  ULONG ReparseTag;
13  USHORT Reserved;
14  union {
15  struct {
20  ULONG Flags;
21  WCHAR PathBuffer[4];
22  } SymbolicLinkReparseBuffer;
23  struct {
24  USHORT SubstituteNameOffset;
25  USHORT SubstituteNameLength;
26  USHORT PrintNameOffset;
27  USHORT PrintNameLength;
28  WCHAR PathBuffer[4];
29  } MountPointReparseBuffer;
30  };
32 
33 #define rb_w32_reparse_buffer_size(n) \
34  (sizeof(rb_w32_reparse_buffer_t) + \
35  sizeof(WCHAR)*((n)-MINIMUM_REPARSE_BUFFER_PATH_LEN))
36 
38  size_t bufsize, WCHAR **result, DWORD *len);
39 
40 int lchown(const char *path, int owner, int group);
41 int rb_w32_ulchown(const char *path, int owner, int group);
42 int fchmod(int fd, int mode);
43 #define HAVE_FCHMOD 0
44 
45 UINT rb_w32_filecp(void);
46 WCHAR *rb_w32_home_dir(void);
47 
48 #endif /* RUBY_WIN32_FILE_H */
rb_w32_reparse_buffer_t
Definition: file.h:10
rb_w32_ulchown
int rb_w32_ulchown(const char *path, int owner, int group)
Definition: win32.c:4782
rb_w32_reparse_buffer_t::Reserved
USHORT Reserved
Definition: file.h:13
rp
#define rp(obj)
Definition: internal.h:1435
DWORD
IUnknown DWORD
Definition: win32ole.c:33
rb_w32_reparse_buffer_t::PrintNameOffset
USHORT PrintNameOffset
Definition: file.h:18
MINIMUM_REPARSE_BUFFER_PATH_LEN
@ MINIMUM_REPARSE_BUFFER_PATH_LEN
Definition: file.h:7
rb_w32_reparse_buffer_t::SubstituteNameLength
USHORT SubstituteNameLength
Definition: file.h:17
lchown
int lchown(const char *path, int owner, int group)
Definition: win32.c:4776
rb_w32_reparse_buffer_t::PrintNameLength
USHORT PrintNameLength
Definition: file.h:19
fchmod
int fchmod(int fd, int mode)
Definition: win32.c:7638
rb_w32_reparse_buffer_t::ReparseDataLength
USHORT ReparseDataLength
Definition: file.h:12
rb_w32_home_dir
WCHAR * rb_w32_home_dir(void)
Definition: win32.c:540
path
VALUE path
Definition: rb_mjit_min_header-2.7.2.h:7336
len
uint8_t len
Definition: escape.c:17
rb_w32_reparse_buffer_t::SubstituteNameOffset
USHORT SubstituteNameOffset
Definition: file.h:16
rb_w32_filecp
UINT rb_w32_filecp(void)
rb_w32_read_reparse_point
int rb_w32_read_reparse_point(const WCHAR *path, rb_w32_reparse_buffer_t *rp, size_t bufsize, WCHAR **result, DWORD *len)
Definition: win32.c:5012