Changeset 5786 for trunk/src/kernel32/hmdisk.cpp
- Timestamp:
- May 23, 2001, 7:00:44 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmdisk.cpp
r5587 r5786 1 /* $Id: hmdisk.cpp,v 1. 6 2001-04-26 13:22:45sandervl Exp $ */1 /* $Id: hmdisk.cpp,v 1.7 2001-05-23 17:00:44 sandervl Exp $ */ 2 2 3 3 /* … … 44 44 BOOL HMDeviceDiskClass::FindDevice(LPCSTR lpClassDevName, LPCSTR lpDeviceName, int namelength) 45 45 { 46 //\\.\ \x:-> length 646 //\\.\x: -> length 6 47 47 //\\.\PHYSICALDRIVEn -> length 18 48 48 if(namelength != 6 && namelength != 18) { … … 106 106 if (hFile != INVALID_HANDLE_ERROR || GetLastError() == ERROR_NOT_READY) 107 107 { 108 if(hFile == INVALID_HANDLE_ERROR) SetLastError(NO_ERROR); 109 110 pHMHandleData->hHMHandle = hFile; 108 if(hFile == INVALID_HANDLE_ERROR) { 109 SetLastError(NO_ERROR); 110 pHMHandleData->hHMHandle = 0; //handle lookup fails if this is set to -1 111 } 112 else pHMHandleData->hHMHandle = hFile; 113 111 114 pHMHandleData->dwUserData = GetDriveTypeA(lpFileName); 112 115 return (NO_ERROR); … … 133 136 LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped) 134 137 { 138 #ifdef DEBUG 139 char *msg = NULL; 140 141 switch(dwIoControlCode) 142 { 143 case FSCTL_DELETE_REPARSE_POINT: 144 msg = "FSCTL_DELETE_REPARSE_POINT"; 145 break; 146 case FSCTL_DISMOUNT_VOLUME: 147 msg = "FSCTL_DISMOUNT_VOLUME"; 148 break; 149 case FSCTL_GET_COMPRESSION: 150 msg = "FSCTL_GET_COMPRESSION"; 151 break; 152 case FSCTL_GET_REPARSE_POINT: 153 msg = "FSCTL_GET_REPARSE_POINT"; 154 break; 155 case FSCTL_LOCK_VOLUME: 156 msg = "FSCTL_LOCK_VOLUME"; 157 break; 158 case FSCTL_QUERY_ALLOCATED_RANGES: 159 msg = "FSCTL_QUERY_ALLOCATED_RANGES"; 160 break; 161 case FSCTL_SET_COMPRESSION: 162 msg = "FSCTL_SET_COMPRESSION"; 163 break; 164 case FSCTL_SET_REPARSE_POINT: 165 msg = "FSCTL_SET_REPARSE_POINT"; 166 break; 167 case FSCTL_SET_SPARSE: 168 msg = "FSCTL_SET_SPARSE"; 169 break; 170 case FSCTL_SET_ZERO_DATA: 171 msg = "FSCTL_SET_ZERO_DATA"; 172 break; 173 case FSCTL_UNLOCK_VOLUME: 174 msg = "FSCTL_UNLOCK_VOLUME"; 175 break; 176 case IOCTL_DISK_CHECK_VERIFY: 177 msg = "IOCTL_DISK_CHECK_VERIFY"; 178 break; 179 case IOCTL_DISK_EJECT_MEDIA: 180 msg = "IOCTL_DISK_EJECT_MEDIA"; 181 break; 182 case IOCTL_DISK_FORMAT_TRACKS: 183 msg = "IOCTL_DISK_FORMAT_TRACKS"; 184 break; 185 case IOCTL_DISK_GET_DRIVE_GEOMETRY: 186 msg = "IOCTL_DISK_GET_DRIVE_GEOMETRY"; 187 break; 188 case IOCTL_DISK_GET_DRIVE_LAYOUT: 189 msg = "IOCTL_DISK_GET_DRIVE_LAYOUT"; 190 break; 191 case IOCTL_DISK_GET_MEDIA_TYPES: 192 msg = "IOCTL_DISK_GET_MEDIA_TYPES"; 193 break; 194 case IOCTL_DISK_GET_PARTITION_INFO: 195 msg = "IOCTL_DISK_GET_PARTITION_INFO"; 196 break; 197 case IOCTL_DISK_LOAD_MEDIA: 198 msg = "IOCTL_DISK_LOAD_MEDIA"; 199 break; 200 case IOCTL_DISK_MEDIA_REMOVAL: 201 msg = "IOCTL_DISK_MEDIA_REMOVAL"; 202 break; 203 case IOCTL_DISK_PERFORMANCE: 204 msg = "IOCTL_DISK_PERFORMANCE"; 205 break; 206 case IOCTL_DISK_REASSIGN_BLOCKS: 207 msg = "IOCTL_DISK_REASSIGN_BLOCKS"; 208 break; 209 case IOCTL_DISK_SET_DRIVE_LAYOUT: 210 msg = "IOCTL_DISK_SET_DRIVE_LAYOUT"; 211 break; 212 case IOCTL_DISK_SET_PARTITION_INFO: 213 msg = "IOCTL_DISK_SET_PARTITION_INFO"; 214 break; 215 case IOCTL_DISK_VERIFY: 216 msg = "IOCTL_DISK_VERIFY"; 217 break; 218 case IOCTL_SERIAL_LSRMST_INSERT: 219 msg = "IOCTL_SERIAL_LSRMST_INSERT"; 220 break; 221 case IOCTL_STORAGE_CHECK_VERIFY: 222 msg = "IOCTL_STORAGE_CHECK_VERIFY"; 223 break; 224 case IOCTL_STORAGE_EJECT_MEDIA: 225 msg = "IOCTL_STORAGE_EJECT_MEDIA"; 226 break; 227 case IOCTL_STORAGE_GET_MEDIA_TYPES: 228 msg = "IOCTL_STORAGE_GET_MEDIA_TYPES"; 229 break; 230 case IOCTL_STORAGE_LOAD_MEDIA: 231 msg = "IOCTL_STORAGE_LOAD_MEDIA"; 232 break; 233 case IOCTL_STORAGE_MEDIA_REMOVAL: 234 msg = "IOCTL_STORAGE_MEDIA_REMOVAL"; 235 break; 236 case IOCTL_SCSI_PASS_THROUGH: 237 msg = "IOCTL_SCSI_PASS_THROUGH"; 238 break; 239 case IOCTL_SCSI_MINIPORT: 240 msg = "IOCTL_SCSI_MINIPORT"; 241 break; 242 case IOCTL_SCSI_GET_INQUIRY_DATA: 243 msg = "IOCTL_SCSI_GET_INQUIRY_DATA"; 244 break; 245 case IOCTL_SCSI_GET_CAPABILITIES: 246 msg = "IOCTL_SCSI_GET_CAPABILITIES"; 247 break; 248 case IOCTL_SCSI_PASS_THROUGH_DIRECT: 249 msg = "IOCTL_SCSI_PASS_THROUGH_DIRECT"; 250 break; 251 case IOCTL_SCSI_GET_ADDRESS: 252 msg = "IOCTL_SCSI_GET_ADDRESS"; 253 break; 254 case IOCTL_SCSI_RESCAN_BUS: 255 msg = "IOCTL_SCSI_RESCAN_BUS"; 256 break; 257 case IOCTL_SCSI_GET_DUMP_POINTERS: 258 msg = "IOCTL_SCSI_GET_DUMP_POINTERS"; 259 break; 260 case IOCTL_SCSI_FREE_DUMP_POINTERS: 261 msg = "IOCTL_SCSI_FREE_DUMP_POINTERS"; 262 break; 263 case IOCTL_IDE_PASS_THROUGH: 264 msg = "IOCTL_IDE_PASS_THROUGH"; 265 break; 266 } 267 if(msg) { 268 dprintf(("HMDeviceDiskClass::DeviceIoControl %s", msg)); 269 } 270 #endif 271 135 272 switch(dwIoControlCode) 136 273 { … … 146 283 case FSCTL_SET_ZERO_DATA: 147 284 case FSCTL_UNLOCK_VOLUME: 285 break; 286 148 287 case IOCTL_DISK_CHECK_VERIFY: 149 288 case IOCTL_DISK_EJECT_MEDIA: … … 161 300 case IOCTL_DISK_VERIFY: 162 301 case IOCTL_SERIAL_LSRMST_INSERT: 302 break; 303 163 304 case IOCTL_STORAGE_CHECK_VERIFY: 305 if(lpBytesReturned) { 306 lpBytesReturned = 0; 307 } 308 //TODO: check if disk has been inserted or removed 309 if(pHMHandleData->hHMHandle == 0) { 310 SetLastError(ERROR_NOT_READY); 311 return FALSE; 312 } 313 SetLastError(NO_ERROR); 314 return TRUE; 315 164 316 case IOCTL_STORAGE_EJECT_MEDIA: 165 317 case IOCTL_STORAGE_GET_MEDIA_TYPES:
Note:
See TracChangeset
for help on using the changeset viewer.