X-Spam-Check-By: sourceware.org Date: Wed, 1 Aug 2007 15:09:05 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: Request for running a test application Message-ID: <20070801130905.GD13674@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <20070801090736 DOT GA11738 AT calimero DOT vinschen DOT de> <46B077DD DOT 7050509 AT users DOT sourceforge DOT net> <46B07ACA DOT 4050108 AT gmx DOT de> <46B081E2 DOT 7040401 AT users DOT sourceforge DOT net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="RnlQjJ0d97Da+TV1" Content-Disposition: inline In-Reply-To: <46B081E2.7040401@users.sourceforge.net> User-Agent: Mutt/1.4.2.2i Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --RnlQjJ0d97Da+TV1 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Aug 1 14:51, Frank Fesevur wrote: > Saro Engels wrote: > >Frank Fesevur schrieb: > >> > >>Administrator AT PC3 /cygdrive/d/Software > >>$ ./getvolinfo.exe z: > >> > > > >Have you tried ./getvolinfo.exe Z: > >with capital Z? > > Just tried and it does not make any difference. Turn out that when I run > it on a local NTFS drive (C:), it gives no result either. It is session > on the console of a Win2003 Server with SP2 logged in Administrator. Weird. Try the attached one instead. It adds error output. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat --RnlQjJ0d97Da+TV1 Content-Type: text/x-c++src; charset=us-ascii Content-Disposition: attachment; filename="getvolinfo.c" #include #include #include #define _WIN32_WINNT 0x0600 #include #include #include #ifndef FILE_READ_ONLY_VOLUME #define FILE_READ_ONLY_VOLUME 0x80000 #endif #ifndef FILE_SEQUENTIAL_WRITE_ONCE #define FILE_SEQUENTIAL_WRITE_ONCE 0x100000 #endif #ifndef FILE_SUPPORTS_TRANSACTIONS #define FILE_SUPPORTS_TRANSACTIONS 0x200000 #endif BOOL NTAPI RtlCreateUnicodeStringFromAsciiz (PUNICODE_STRING, PCSTR); int __stdcall sys_wcstombs (char *tgt, int tlen, const WCHAR *src, int slen) { int ret; ret = WideCharToMultiByte (GetOEMCP (), 0, src, slen, tgt, tlen, NULL, NULL); if (ret) tgt[ret < tlen ? ret : tlen - 1] = '\0'; return ret; } int main (int argc, char **argv) { char winpath[256]; DWORD flags = 0; HANDLE h; UNICODE_STRING wpath; UNICODE_STRING upath; OBJECT_ATTRIBUTES attr; IO_STATUS_BLOCK io; NTSTATUS stat; ULONG ret; if (argc < 2) { fprintf (stderr, "usage: %s path\n", argv[0]); return 1; } cygwin_conv_to_full_win32_path (argv[1], winpath); if (!RtlCreateUnicodeStringFromAsciiz (&wpath, winpath)) { fprintf (stderr, "RtlCreateUnicodeStringFromAsciiz failed\n"); return 1; } if (!RtlDosPathNameToNtPathName_U (wpath.Buffer, &upath, NULL, NULL)) { fprintf (stderr, "RtlDosPathNameToNtPathName_U failed\n"); RtlFreeUnicodeString (&wpath); return 1; } InitializeObjectAttributes (&attr, &upath, OBJ_CASE_INSENSITIVE, NULL, NULL); stat = ZwOpenFile (&h, READ_CONTROL, &attr, &io, FILE_SHARE_VALID_FLAGS, FILE_OPEN_FOR_BACKUP_INTENT); if (!NT_SUCCESS (stat) && stat == STATUS_NO_MEDIA_IN_DEVICE) { upath.Length = 6 * sizeof (WCHAR); stat = ZwOpenFile (&h, READ_CONTROL, &attr, &io, FILE_SHARE_VALID_FLAGS, 0); } if (!NT_SUCCESS (stat)) { char buf[1024]; wcstombs (buf, upath.Buffer, upath.Length / sizeof (WCHAR)); buf[upath.Length / sizeof (WCHAR)] = '\0'; fprintf (stderr, "ZwOpenFile(%s) failed, %08x\n", buf, stat); return 1; } char buf[1024]; char name[256]; stat = ZwQueryVolumeInformationFile (h, &io, buf, 1024, FileFsDeviceInformation); if (NT_SUCCESS (stat)) { PFILE_FS_DEVICE_INFORMATION pfi = (PFILE_FS_DEVICE_INFORMATION) buf; printf ("Device Type : %lx\n", pfi->DeviceType); printf ("Characteristics : %lx\n", pfi->Characteristics); } else fprintf (stderr, "FileFsDeviceInformation failed, %08lx\n", stat); stat = ZwQueryVolumeInformationFile (h, &io, buf, 1024, FileFsVolumeInformation); if (NT_SUCCESS (stat)) { PFILE_FS_VOLUME_INFORMATION pfi = (PFILE_FS_VOLUME_INFORMATION) buf; if (pfi->VolumeLabelLength) { sys_wcstombs (name, 256, pfi->VolumeLabel, pfi->VolumeLabelLength / sizeof (WCHAR)); printf ("Volume Name : <%s>\n", name); } else printf ("Volume Name : <>\n"); printf ("Serial Number : %lu\n", pfi->VolumeSerialNumber); } else fprintf (stderr, "FileFsVolumeInformation failed, %08lx\n", stat); stat = ZwQueryVolumeInformationFile (h, &io, buf, 1024, FileFsAttributeInformation); if (NT_SUCCESS (stat)) { PFILE_FS_ATTRIBUTE_INFORMATION pfi = (PFILE_FS_ATTRIBUTE_INFORMATION) buf; printf ("Max Filenamelength : %lu\n",pfi->MaximumComponentNameLength); sys_wcstombs (name, 256, pfi->FileSystemName, pfi->FileSystemNameLength / sizeof (WCHAR)); printf ("Filesystemname : <%s>\n", name); printf ("Flags : %lx\n", flags = pfi->FileSystemAttributes); printf (" FILE_CASE_SENSITIVE_SEARCH : %s\n", (flags & FILE_CASE_SENSITIVE_SEARCH) ? "TRUE" : "FALSE"); printf (" FILE_CASE_PRESERVED_NAMES : %s\n", (flags & FILE_CASE_PRESERVED_NAMES) ? "TRUE" : "FALSE"); printf (" FILE_UNICODE_ON_DISK : %s\n", (flags & FILE_UNICODE_ON_DISK) ? "TRUE" : "FALSE"); printf (" FILE_PERSISTENT_ACLS : %s\n", (flags & FILE_PERSISTENT_ACLS) ? "TRUE" : "FALSE"); printf (" FILE_FILE_COMPRESSION : %s\n", (flags & FILE_FILE_COMPRESSION) ? "TRUE" : "FALSE"); printf (" FILE_VOLUME_QUOTAS : %s\n", (flags & FILE_VOLUME_QUOTAS) ? "TRUE" : "FALSE"); printf (" FILE_SUPPORTS_SPARSE_FILES : %s\n", (flags & FILE_SUPPORTS_SPARSE_FILES) ? "TRUE" : "FALSE"); printf (" FILE_SUPPORTS_REPARSE_POINTS: %s\n", (flags & FILE_SUPPORTS_REPARSE_POINTS) ? "TRUE" : "FALSE"); printf (" FILE_SUPPORTS_REMOTE_STORAGE: %s\n", (flags & FILE_SUPPORTS_REMOTE_STORAGE) ? "TRUE" : "FALSE"); printf (" FILE_VOLUME_IS_COMPRESSED : %s\n", (flags & FILE_VOLUME_IS_COMPRESSED) ? "TRUE" : "FALSE"); printf (" FILE_SUPPORTS_OBJECT_IDS : %s\n", (flags & FILE_SUPPORTS_OBJECT_IDS) ? "TRUE" : "FALSE"); printf (" FILE_SUPPORTS_ENCRYPTION : %s\n", (flags & FILE_SUPPORTS_ENCRYPTION) ? "TRUE" : "FALSE"); printf (" FILE_NAMED_STREAMS : %s\n", (flags & FILE_NAMED_STREAMS) ? "TRUE" : "FALSE"); printf (" FILE_READ_ONLY_VOLUME : %s\n", (flags & FILE_READ_ONLY_VOLUME) ? "TRUE" : "FALSE"); printf (" FILE_SEQUENTIAL_WRITE_ONCE : %s\n", (flags & FILE_SEQUENTIAL_WRITE_ONCE) ? "TRUE" : "FALSE"); printf (" FILE_SUPPORTS_TRANSACTIONS : %s\n", (flags & FILE_SUPPORTS_TRANSACTIONS) ? "TRUE" : "FALSE"); } else fprintf (stderr, "FileFsAttributeInformation failed, %08lx\n", stat); ZwClose (h); RtlFreeUnicodeString (&upath); RtlFreeUnicodeString (&wpath); return 0; } --RnlQjJ0d97Da+TV1 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --RnlQjJ0d97Da+TV1--