X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0647338618E3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1701424358; bh=H8KSXzCQzt+zCm83PvpAgnJVVkr/9hYwPyISFTAc3GU=; h=Date:To:Subject:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=LMx/d7YzbcAI3TNrrwUTUdV5wRp2esp9H5HKY06RrtqLUzbtammwisuqCHkKitnxZ RrmJ5tAzNhkY7rHdoCCg1Ek9FkRrm8eH/2JZGPuaSj7QsoT0iYmWBsW4Ju6URgFtoS jTi18JoFCY4JjLxwHt57E+UXw7aCDZhPUjVbERvA= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 754C2385B53B Date: Fri, 1 Dec 2023 10:51:57 +0100 To: cygwin AT cygwin DOT com Subject: Re: Cygwin tools to read/write NTFS alternate data streams? Message-ID: Mail-Followup-To: cygwin AT cygwin DOT com References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Corinna Vinschen via Cygwin Reply-To: cygwin AT cygwin DOT com Cc: Corinna Vinschen Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" On Nov 30 04:55, Martin Wege via Cygwin wrote: > Hello, > > Does Cygwin have tools (modified /usr/bin/dd ?) to read/write NTFS > alternate data streams? No. As you know, the colon is translated to a normal filename character, and there's no POSIX-like API to expose ADS raw to user space. There is, however, an old function we still expose to user space for backward compat: #include int cygwin_attach_handle_to_fd (char *name, int fd, HANDLE handle, mode_t bin, DWORD myaccess); This allows to sneak in a HANDLE into a Cygwin file descriptor representation, kind of like this: HANDLE h; int fd; h = CreateFile ("foo:bar", GENERIC_READ, FILE_SHARE_VALID_FLAGS, NULL, OPEN_EXISTING, 0, NULL); if (h != INVALID_HANDLE_VALUE) { fd = cygwin_attach_handle_to_fd ("foo", -1, h, 0, GENERIC_READ); if (fd < 0) bail_out; } For the bin parameter, only 0, O_BINARY or O_TEXT are acceptable, for myaccess, only GENERIC_READ and/or GENERIC_WRITE are acceptable. Corinna -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple