Ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a25176072e02db9254f0e0c84c805cd)
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
6enum {
8};
9/* License: Ruby's */
10typedef 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
40int lchown(const char *path, int owner, int group);
41int rb_w32_ulchown(const char *path, int owner, int group);
42int fchmod(int fd, int mode);
43#define HAVE_FCHMOD 0
44
45UINT rb_w32_filecp(void);
46WCHAR *rb_w32_home_dir(void);
47
48#endif /* RUBY_WIN32_FILE_H */
#define rp(obj)
__inline__ const void *__restrict__ size_t len
USHORT SubstituteNameLength
Definition: file.h:17
USHORT PrintNameLength
Definition: file.h:19
USHORT ReparseDataLength
Definition: file.h:12
USHORT PrintNameOffset
Definition: file.h:18
USHORT SubstituteNameOffset
Definition: file.h:16
UINT rb_w32_filecp(void)
WCHAR * rb_w32_home_dir(void)
Definition: win32.c:540
int fchmod(int fd, int mode)
Definition: win32.c:7678
int lchown(const char *path, int owner, int group)
Definition: win32.c:4806
@ MINIMUM_REPARSE_BUFFER_PATH_LEN
Definition: file.h:7
int rb_w32_ulchown(const char *path, int owner, int group)
Definition: win32.c:4812
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:5042
IUnknown DWORD
Definition: win32ole.c:33