sbWindowsStorageDeviceUtils.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set sw=2 :miv */
3 /*
4  *=BEGIN SONGBIRD GPL
5  *
6  * This file is part of the Songbird web player.
7  *
8  * Copyright(c) 2005-2010 POTI, Inc.
9  * http://www.songbirdnest.com
10  *
11  * This file may be licensed under the terms of of the
12  * GNU General Public License Version 2 (the ``GPL'').
13  *
14  * Software distributed under the License is distributed
15  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
16  * express or implied. See the GPL for the specific language
17  * governing rights and limitations.
18  *
19  * You should have received a copy of the GPL along with this
20  * program. If not, go to http://www.gnu.org/licenses/gpl.html
21  * or write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23  *
24  *=END SONGBIRD GPL
25  */
26 
27 #ifndef SB_WINDOWS_STORAGE_DEVICE_UTILS_H_
28 #define SB_WINDOWS_STORAGE_DEVICE_UTILS_H_
29 
30 //------------------------------------------------------------------------------
31 //------------------------------------------------------------------------------
32 //
33 // Songbird Windows storage device utilities defs.
34 //
35 //------------------------------------------------------------------------------
36 //------------------------------------------------------------------------------
37 
43 //------------------------------------------------------------------------------
44 //
45 // Songbird Windows storage device utilities imported services.
46 //
47 //------------------------------------------------------------------------------
48 
49 // Mozilla imports.
50 #include <nsStringGlue.h>
51 #include <nsTArray.h>
52 
53 // Windows imports.
54 #include <devioctl.h>
55 #include <windows.h>
56 
57 #include <cfgmgr32.h>
58 #include <ntddstor.h>
59 #include <setupapi.h>
60 
61 
62 //------------------------------------------------------------------------------
63 //
64 // Songbird Windows device storage services.
65 //
66 //------------------------------------------------------------------------------
67 
69  (STORAGE_DEVICE_NUMBER* aStorageDevNum,
70  PRBool aMatchPartitionNumber,
71  const GUID* aGUID,
72  nsTArray<DEVINST>& aDevInstList);
73 
74 nsresult sbWinGetStorageDevNum(DEVINST aDevInst,
75  const GUID* aGUID,
76  STORAGE_DEVICE_NUMBER* aStorageDevNum);
77 
78 nsresult sbWinGetStorageDevNum(LPCTSTR aDevPath,
79  STORAGE_DEVICE_NUMBER* aStorageDevNum);
80 
81 
82 //------------------------------------------------------------------------------
83 //
84 // Songbird Windows volume device services.
85 //
86 //------------------------------------------------------------------------------
87 
88 nsresult sbWinVolumeIsReady(DEVINST aDevInst,
89  PRBool* aIsReady);
90 
91 nsresult sbWinVolumeGetIsReadOnly(const nsAString& aVolumeMountPath,
92  PRBool* aIsReadOnly);
93 
94 nsresult sbWinGetVolumeGUIDPath(DEVINST aDevInst,
95  nsAString& aVolumeGUIDPath);
96 
97 nsresult sbWinGetVolumeGUID(DEVINST aDevInst,
98  nsAString& aVolumeGUID);
99 
100 nsresult sbWinGetVolumePathNames(DEVINST aDevInst,
101  nsTArray<nsString>& aPathNames);
102 
103 nsresult sbWinGetVolumePathNames(nsAString& aVolumeGUIDPath,
104  nsTArray<nsString>& aPathNames);
105 
106 nsresult sbWinGetVolumeLabel(const nsAString& aVolumeMountPath,
107  nsACString& aVolumeLabel);
108 
109 nsresult sbWinSetVolumeLabel(const nsAString& aVolumeMountPath,
110  const nsACString& aVolumeLabel);
111 
112 
113 //------------------------------------------------------------------------------
114 //
115 // Songbird Windows SCSI device utilities services.
116 //
117 //------------------------------------------------------------------------------
118 
119 nsresult sbWinGetSCSIProductInfo(DEVINST aDevInst,
120  nsAString& aVendorID,
121  nsAString& aProductID);
122 
123 
124 #endif // SB_WINDOWS_STORAGE_DEVICE_UTILS_H_
125 
nsresult sbWinGetVolumeLabel(const nsAString &aVolumeMountPath, nsACString &aVolumeLabel)
nsresult sbWinGetVolumeGUID(DEVINST aDevInst, nsAString &aVolumeGUID)
nsresult sbWinGetVolumePathNames(DEVINST aDevInst, nsTArray< nsString > &aPathNames)
nsresult sbWinFindDevicesByStorageDevNum(STORAGE_DEVICE_NUMBER *aStorageDevNum, PRBool aMatchPartitionNumber, const GUID *aGUID, nsTArray< DEVINST > &aDevInstList)
nsresult sbWinVolumeGetIsReadOnly(const nsAString &aVolumeMountPath, PRBool *aIsReadOnly)
nsresult sbWinSetVolumeLabel(const nsAString &aVolumeMountPath, const nsACString &aVolumeLabel)
nsresult sbWinGetSCSIProductInfo(DEVINST aDevInst, nsAString &aVendorID, nsAString &aProductID)
nsresult sbWinGetVolumeGUIDPath(DEVINST aDevInst, nsAString &aVolumeGUIDPath)
nsresult sbWinVolumeIsReady(DEVINST aDevInst, PRBool *aIsReady)
nsresult sbWinGetStorageDevNum(DEVINST aDevInst, const GUID *aGUID, STORAGE_DEVICE_NUMBER *aStorageDevNum)