| 402 | } |
| 403 | |
| 404 | NTSTATUS |
| 405 | Ext2AllowExtendedDasdIo(IN PEXT2_IRP_CONTEXT IrpContext) |
| 406 | { |
| 407 | PIO_STACK_LOCATION IrpSp; |
| 408 | PEXT2_VCB Vcb; |
| 409 | PEXT2_CCB Ccb; |
| 410 | NTSTATUS status; |
| 411 | |
| 412 | IrpSp = IoGetCurrentIrpStackLocation(IrpContext->Irp); |
| 413 | |
| 414 | Vcb = (PEXT2_VCB) IrpSp->FileObject->FsContext; |
| 415 | Ccb = (PEXT2_CCB) IrpSp->FileObject->FsContext2; |
| 416 | |
| 417 | ASSERT(Vcb != NULL); |
| 418 | |
| 419 | ASSERT((Vcb->Identifier.Type == EXT2VCB) && |
| 420 | (Vcb->Identifier.Size == sizeof(EXT2_VCB))); |
| 421 | |
| 422 | ASSERT(IsMounted(Vcb)); |
| 423 | |
| 424 | if (Ccb) { |
| 425 | SetLongFlag(Ccb->Flags, CCB_ALLOW_EXTENDED_DASD_IO); |
| 426 | status = STATUS_SUCCESS; |
| 427 | } else { |
| 428 | status = STATUS_INVALID_PARAMETER; |
| 429 | } |
| 430 | |
| 431 | Ext2CompleteIrpContext(IrpContext, status); |
| 432 | return status; |
| 433 | } |
| 434 | |
| 435 | /* |
| 436 | * Ext2OplockRequest |
no test coverage detected