| 213 | |
| 214 | |
| 215 | VOID |
| 216 | Ext2DbgPrintCall (IN PDEVICE_OBJECT DeviceObject, |
| 217 | IN PIRP Irp ) |
| 218 | { |
| 219 | PIO_STACK_LOCATION IoStackLocation; |
| 220 | PFILE_OBJECT FileObject; |
| 221 | PWCHAR FileName; |
| 222 | PEXT2_FCB Fcb; |
| 223 | FILE_INFORMATION_CLASS FileInformationClass; |
| 224 | FS_INFORMATION_CLASS FsInformationClass; |
| 225 | |
| 226 | IoStackLocation = IoGetCurrentIrpStackLocation(Irp); |
| 227 | |
| 228 | FileObject = IoStackLocation->FileObject; |
| 229 | |
| 230 | FileName = L"Unknown"; |
| 231 | |
| 232 | if (DeviceObject == Ext2Global->DiskdevObject) { |
| 233 | |
| 234 | FileName = DEVICE_NAME; |
| 235 | |
| 236 | } else if (DeviceObject == Ext2Global->CdromdevObject) { |
| 237 | |
| 238 | FileName = CDROM_NAME; |
| 239 | |
| 240 | } else if (FileObject && FileObject->FsContext) { |
| 241 | |
| 242 | Fcb = (PEXT2_FCB) FileObject->FsContext; |
| 243 | |
| 244 | if (Fcb->Identifier.Type == EXT2VCB) { |
| 245 | FileName = L"\\Volume"; |
| 246 | } else if (Fcb->Identifier.Type == EXT2FCB && Fcb->Mcb->FullName.Buffer) { |
| 247 | FileName = Fcb->Mcb->FullName.Buffer; |
| 248 | } |
| 249 | } |
| 250 | |
| 251 | switch (IoStackLocation->MajorFunction) { |
| 252 | |
| 253 | case IRP_MJ_CREATE: |
| 254 | |
| 255 | FileName = NULL; |
| 256 | |
| 257 | if (DeviceObject == Ext2Global->DiskdevObject) { |
| 258 | FileName = DEVICE_NAME; |
| 259 | } else if (DeviceObject == Ext2Global->CdromdevObject) { |
| 260 | FileName = CDROM_NAME; |
| 261 | } else if (IoStackLocation->FileObject->FileName.Length == 0) { |
| 262 | FileName = L"\\Volume"; |
| 263 | } |
| 264 | |
| 265 | if (FileName) { |
| 266 | DEBUGNI(DL_FUN, ("%s %s %S\n", |
| 267 | Ext2GetCurrentProcessName(), |
| 268 | IrpMjStrings[IoStackLocation->MajorFunction], |
| 269 | FileName |
| 270 | )); |
| 271 | } else if (IoStackLocation->FileObject->FileName.Buffer) { |
| 272 | DEBUGNI(DL_FUN, ("%s %s %S\n", |