@@ -1252,7 +1252,13 @@ namespace {
1252
1252
1253
1253
inline bool is_reparse_point_a_symlink (path const & p)
1254
1254
{
1255
- handle_wrapper h (create_file_handle (p, 0u , FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT));
1255
+ handle_wrapper h (create_file_handle (
1256
+ p,
1257
+ FILE_READ_ATTRIBUTES,
1258
+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
1259
+ NULL ,
1260
+ OPEN_EXISTING,
1261
+ FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT));
1256
1262
if (BOOST_UNLIKELY (h.handle == INVALID_HANDLE_VALUE))
1257
1263
return false ;
1258
1264
@@ -1357,8 +1363,13 @@ bool remove_nt5_impl(path const& p, DWORD attrs, error_code* ec)
1357
1363
// ! remove() implementation for Windows Vista and newer
1358
1364
bool remove_nt6_impl (path const & p, remove_impl_type impl, error_code* ec)
1359
1365
{
1360
- handle_wrapper h (create_file_handle (p, DELETE | FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
1361
- NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT));
1366
+ handle_wrapper h (create_file_handle (
1367
+ p,
1368
+ DELETE | FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES,
1369
+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
1370
+ NULL ,
1371
+ OPEN_EXISTING,
1372
+ FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT));
1362
1373
DWORD err;
1363
1374
if (BOOST_UNLIKELY (h.handle == INVALID_HANDLE_VALUE))
1364
1375
{
@@ -2373,7 +2384,7 @@ bool copy_file(path const& from, path const& to, unsigned int options, error_cod
2373
2384
// Create handle_wrappers here so that CloseHandle calls don't clobber error code returned by GetLastError
2374
2385
handle_wrapper hw_from, hw_to;
2375
2386
2376
- hw_from.handle = create_file_handle (from.c_str (), 0u , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS);
2387
+ hw_from.handle = create_file_handle (from.c_str (), FILE_READ_ATTRIBUTES , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS);
2377
2388
2378
2389
FILETIME lwt_from;
2379
2390
if (hw_from.handle == INVALID_HANDLE_VALUE)
@@ -2384,15 +2395,15 @@ bool copy_file(path const& from, path const& to, unsigned int options, error_cod
2384
2395
return false ;
2385
2396
}
2386
2397
2387
- if (!::GetFileTime (hw_from.handle , 0 , 0 , &lwt_from))
2398
+ if (!::GetFileTime (hw_from.handle , NULL , NULL , &lwt_from))
2388
2399
goto fail_last_error;
2389
2400
2390
- hw_to.handle = create_file_handle (to.c_str (), 0u , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS);
2401
+ hw_to.handle = create_file_handle (to.c_str (), FILE_READ_ATTRIBUTES , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS);
2391
2402
2392
2403
if (hw_to.handle != INVALID_HANDLE_VALUE)
2393
2404
{
2394
2405
FILETIME lwt_to;
2395
- if (!::GetFileTime (hw_to.handle , 0 , 0 , &lwt_to))
2406
+ if (!::GetFileTime (hw_to.handle , NULL , NULL , &lwt_to))
2396
2407
goto fail_last_error;
2397
2408
2398
2409
ULONGLONG tfrom = (static_cast < ULONGLONG >(lwt_from.dwHighDateTime ) << 32 ) | static_cast < ULONGLONG >(lwt_from.dwLowDateTime );
@@ -2894,23 +2905,21 @@ bool equivalent(path const& p1, path const& p2, system::error_code* ec)
2894
2905
// been retrieved.
2895
2906
2896
2907
// p2 is done first, so any error reported is for p1
2897
- handle_wrapper h2 (
2898
- create_file_handle (
2899
- p2.c_str (),
2900
- 0u ,
2901
- FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
2902
- NULL ,
2903
- OPEN_EXISTING,
2904
- FILE_FLAG_BACKUP_SEMANTICS));
2905
-
2906
- handle_wrapper h1 (
2907
- create_file_handle (
2908
- p1.c_str (),
2909
- 0u ,
2910
- FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
2911
- NULL ,
2912
- OPEN_EXISTING,
2913
- FILE_FLAG_BACKUP_SEMANTICS));
2908
+ handle_wrapper h2 (create_file_handle (
2909
+ p2.c_str (),
2910
+ FILE_READ_ATTRIBUTES,
2911
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
2912
+ NULL ,
2913
+ OPEN_EXISTING,
2914
+ FILE_FLAG_BACKUP_SEMANTICS));
2915
+
2916
+ handle_wrapper h1 (create_file_handle (
2917
+ p1.c_str (),
2918
+ FILE_READ_ATTRIBUTES,
2919
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
2920
+ NULL ,
2921
+ OPEN_EXISTING,
2922
+ FILE_FLAG_BACKUP_SEMANTICS));
2914
2923
2915
2924
if (BOOST_UNLIKELY (h1.handle == INVALID_HANDLE_VALUE || h2.handle == INVALID_HANDLE_VALUE))
2916
2925
{
@@ -3044,8 +3053,13 @@ uintmax_t hard_link_count(path const& p, system::error_code* ec)
3044
3053
3045
3054
#else // defined(BOOST_POSIX_API)
3046
3055
3047
- handle_wrapper h (
3048
- create_file_handle (p.c_str (), 0u , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS));
3056
+ handle_wrapper h (create_file_handle (
3057
+ p.c_str (),
3058
+ FILE_READ_ATTRIBUTES,
3059
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3060
+ NULL ,
3061
+ OPEN_EXISTING,
3062
+ FILE_FLAG_BACKUP_SEMANTICS));
3049
3063
3050
3064
if (BOOST_UNLIKELY (h.handle == INVALID_HANDLE_VALUE))
3051
3065
{
@@ -3166,8 +3180,13 @@ std::time_t creation_time(path const& p, system::error_code* ec)
3166
3180
3167
3181
#else // defined(BOOST_POSIX_API)
3168
3182
3169
- handle_wrapper hw (
3170
- create_file_handle (p.c_str (), 0u , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS));
3183
+ handle_wrapper hw (create_file_handle (
3184
+ p.c_str (),
3185
+ FILE_READ_ATTRIBUTES,
3186
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3187
+ NULL ,
3188
+ OPEN_EXISTING,
3189
+ FILE_FLAG_BACKUP_SEMANTICS));
3171
3190
3172
3191
if (BOOST_UNLIKELY (hw.handle == INVALID_HANDLE_VALUE))
3173
3192
{
@@ -3219,8 +3238,13 @@ std::time_t last_write_time(path const& p, system::error_code* ec)
3219
3238
3220
3239
#else // defined(BOOST_POSIX_API)
3221
3240
3222
- handle_wrapper hw (
3223
- create_file_handle (p.c_str (), 0u , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS));
3241
+ handle_wrapper hw (create_file_handle (
3242
+ p.c_str (),
3243
+ FILE_READ_ATTRIBUTES,
3244
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3245
+ NULL ,
3246
+ OPEN_EXISTING,
3247
+ FILE_FLAG_BACKUP_SEMANTICS));
3224
3248
3225
3249
if (BOOST_UNLIKELY (hw.handle == INVALID_HANDLE_VALUE))
3226
3250
{
@@ -3281,8 +3305,13 @@ void last_write_time(path const& p, const std::time_t new_time, system::error_co
3281
3305
3282
3306
#else // defined(BOOST_POSIX_API)
3283
3307
3284
- handle_wrapper hw (
3285
- create_file_handle (p.c_str (), FILE_WRITE_ATTRIBUTES, FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS));
3308
+ handle_wrapper hw (create_file_handle (
3309
+ p.c_str (),
3310
+ FILE_WRITE_ATTRIBUTES,
3311
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3312
+ NULL ,
3313
+ OPEN_EXISTING,
3314
+ FILE_FLAG_BACKUP_SEMANTICS));
3286
3315
3287
3316
if (BOOST_UNLIKELY (hw.handle == INVALID_HANDLE_VALUE))
3288
3317
{
@@ -3294,7 +3323,7 @@ void last_write_time(path const& p, const std::time_t new_time, system::error_co
3294
3323
FILETIME lwt;
3295
3324
to_FILETIME (new_time, lwt);
3296
3325
3297
- if (BOOST_UNLIKELY (!::SetFileTime (hw.handle , 0 , 0 , &lwt)))
3326
+ if (BOOST_UNLIKELY (!::SetFileTime (hw.handle , NULL , NULL , &lwt)))
3298
3327
goto fail;
3299
3328
3300
3329
#endif // defined(BOOST_POSIX_API)
@@ -3445,8 +3474,13 @@ path read_symlink(path const& p, system::error_code* ec)
3445
3474
3446
3475
#else
3447
3476
3448
- handle_wrapper h (
3449
- create_file_handle (p.c_str (), 0u , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL , OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT));
3477
+ handle_wrapper h (create_file_handle (
3478
+ p.c_str (),
3479
+ FILE_READ_ATTRIBUTES,
3480
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3481
+ NULL ,
3482
+ OPEN_EXISTING,
3483
+ FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT));
3450
3484
3451
3485
DWORD error;
3452
3486
if (BOOST_UNLIKELY (h.handle == INVALID_HANDLE_VALUE))
@@ -3460,7 +3494,7 @@ path read_symlink(path const& p, system::error_code* ec)
3460
3494
3461
3495
boost::scoped_ptr< reparse_data_buffer_with_storage > buf (new reparse_data_buffer_with_storage);
3462
3496
DWORD sz = 0u ;
3463
- if (BOOST_UNLIKELY (!::DeviceIoControl (h.handle , FSCTL_GET_REPARSE_POINT, 0 , 0 , buf.get (), sizeof (*buf), &sz, 0 )))
3497
+ if (BOOST_UNLIKELY (!::DeviceIoControl (h.handle , FSCTL_GET_REPARSE_POINT, NULL , 0 , buf.get (), sizeof (*buf), &sz, NULL )))
3464
3498
{
3465
3499
error = ::GetLastError ();
3466
3500
goto return_error;
@@ -3711,14 +3745,13 @@ file_status status(path const& p, error_code* ec)
3711
3745
if (st.type () == symlink_file)
3712
3746
{
3713
3747
// Resolve the symlink
3714
- handle_wrapper h (
3715
- create_file_handle (
3716
- p.c_str (),
3717
- 0u , // dwDesiredAccess; attributes only
3718
- FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3719
- NULL , // lpSecurityAttributes
3720
- OPEN_EXISTING,
3721
- FILE_FLAG_BACKUP_SEMANTICS));
3748
+ handle_wrapper h (create_file_handle (
3749
+ p.c_str (),
3750
+ FILE_READ_ATTRIBUTES, // dwDesiredAccess; attributes only
3751
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3752
+ NULL , // lpSecurityAttributes
3753
+ OPEN_EXISTING,
3754
+ FILE_FLAG_BACKUP_SEMANTICS));
3722
3755
3723
3756
if (h.handle == INVALID_HANDLE_VALUE)
3724
3757
{
@@ -3814,14 +3847,13 @@ file_status symlink_status(path const& p, error_code* ec)
3814
3847
3815
3848
#else // defined(BOOST_POSIX_API)
3816
3849
3817
- handle_wrapper h (
3818
- create_file_handle (
3819
- p.c_str (),
3820
- 0u , // dwDesiredAccess; attributes only
3821
- FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3822
- NULL , // lpSecurityAttributes
3823
- OPEN_EXISTING,
3824
- FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT));
3850
+ handle_wrapper h (create_file_handle (
3851
+ p.c_str (),
3852
+ FILE_READ_ATTRIBUTES, // dwDesiredAccess; attributes only
3853
+ FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
3854
+ NULL , // lpSecurityAttributes
3855
+ OPEN_EXISTING,
3856
+ FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT));
3825
3857
3826
3858
if (h.handle == INVALID_HANDLE_VALUE)
3827
3859
{
0 commit comments