share_mode: Option<libc::DWORD>,
creation_disposition: Option<libc::DWORD>,
flags_and_attributes: Option<libc::DWORD>,
+ security_attributes: usize, // *mut T doesn't have a Default impl
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub fn share_mode(&mut self, val: i32) {
self.share_mode = Some(val as libc::DWORD);
}
+ pub fn security_attributes(&mut self, attrs: libc::LPSECURITY_ATTRIBUTES) {
+ self.security_attributes = attrs as usize;
+ }
fn get_desired_access(&self) -> libc::DWORD {
self.desired_access.unwrap_or({
libc::CreateFileW(path.as_ptr(),
opts.get_desired_access(),
opts.get_share_mode(),
- ptr::null_mut(),
+ opts.security_attributes as *mut _,
opts.get_creation_disposition(),
opts.get_flags_and_attributes(),
ptr::null_mut())
Ok(PathBuf::from(OsString::from_wide(subst)))
}
}
+
+ pub fn into_handle(self) -> Handle { self.handle }
}
impl FromInner<libc::HANDLE> for File {