diff --git a/include/ntapi/nt_file.h b/include/ntapi/nt_file.h index c15772e..3de780e 100644 --- a/include/ntapi/nt_file.h +++ b/include/ntapi/nt_file.h @@ -1206,7 +1206,9 @@ typedef int32_t __stdcall ntapi_tt_open_physical_parent_directory( __in void * hdir, __out uintptr_t * buffer, __in uint32_t buffer_size, + __in uint32_t oattr, __in uint32_t desired_access, + __in uint32_t share_access, __in uint32_t open_options); #endif diff --git a/src/fs/ntapi_tt_open_physical_parent_directory.c b/src/fs/ntapi_tt_open_physical_parent_directory.c index 2822b47..120896b 100644 --- a/src/fs/ntapi_tt_open_physical_parent_directory.c +++ b/src/fs/ntapi_tt_open_physical_parent_directory.c @@ -13,7 +13,9 @@ int32_t __stdcall __ntapi_tt_open_physical_parent_directory( __in void * hdir, __out uintptr_t * buffer, __in uint32_t buffer_size, + __in uint32_t oattr, __in uint32_t desired_access, + __in uint32_t share_access, __in uint32_t open_options) { int32_t status; @@ -67,7 +69,7 @@ int32_t __stdcall __ntapi_tt_open_physical_parent_directory( oa.len = sizeof(nt_oa); oa.root_dir = 0; oa.obj_name = path; - oa.obj_attr = 0; + oa.obj_attr = oattr, oa.sec_desc = 0; oa.sec_qos = 0; @@ -80,8 +82,7 @@ int32_t __stdcall __ntapi_tt_open_physical_parent_directory( return __ntapi->zw_open_file( hparent, desired_access, - &oa, - &iosb, - NT_FILE_SHARE_READ | NT_FILE_SHARE_WRITE, + &oa,&iosb, + share_access, open_options | NT_FILE_DIRECTORY_FILE); }