int FlFdcDeviceIo(int DeviceObject , int Ioctl , int Data ) { int ntStatus ; int irp ; int irpStack ; int doneEvent = __VERIFIER_nondet_int() ; int ioStatus = __VERIFIER_nondet_int() ; int irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int irpStack__Parameters__DeviceIoControl__Type3InputBuffer ; long __cil_tmp11 ; { { irp = IoBuildDeviceIoControlRequest(Ioctl, DeviceObject, 0, 0, 0, 0, 1, doneEvent, ioStatus); } if (irp == 0) { return (-1073741670); } { irpStack = irp__Tail__Overlay__CurrentStackLocation - 1; irpStack__Parameters__DeviceIoControl__Type3InputBuffer = Data; ntStatus = IofCallDriver(DeviceObject, irp); } { __cil_tmp11 = (long )ntStatus; if (__cil_tmp11 == 259L) { { KeWaitForSingleObject(doneEvent, Suspended, KernelMode, 0, 0); ntStatus = myStatus; } } } return (ntStatus); } }
int DiskPerfSendToNextDriver(int DeviceObject , int Irp ) { int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int deviceExtension ; int tmp ; { #line 199 if (s == NP) { #line 200 s = SKIP1; } else { { #line 203 errorFn(); } } { #line 207 Irp__CurrentLocation ++; #line 208 Irp__Tail__Overlay__CurrentStackLocation ++; #line 209 deviceExtension = DeviceObject__DeviceExtension; #line 210 tmp = IofCallDriver(deviceExtension__TargetDeviceObject, Irp); } #line 212 return (tmp); } }
int KbFilter_DispatchPassThrough(int DeviceObject , int Irp ) { int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int DeviceObject__DeviceExtension__TopOfStack = __VERIFIER_nondet_int() ; int irpStack ; int tmp ; { #line 691 irpStack = Irp__Tail__Overlay__CurrentStackLocation; #line 692 if (s == NP) { #line 693 s = SKIP1; } else { { #line 696 errorFn(); } } { #line 700 Irp__CurrentLocation ++; #line 701 Irp__Tail__Overlay__CurrentStackLocation ++; #line 702 tmp = IofCallDriver(DeviceObject__DeviceExtension__TopOfStack, Irp); } #line 704 return (tmp); } }
int DiskPerfSendToNextDriver(int DeviceObject , int Irp ) { int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int deviceExtension ; int tmp ; { if (s == NP) { s = SKIP1; } else { { errorFn(); } } { Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; deviceExtension = DeviceObject__DeviceExtension; tmp = IofCallDriver(deviceExtension__TargetDeviceObject, Irp); } return (tmp); } }
NTSTATUS NTAPI BatteryIoctl(IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl) { IO_STATUS_BLOCK IoStatusBlock; KEVENT Event; NTSTATUS Status; PIRP Irp; PAGED_CODE(); if (CompBattDebug & 0x100) DbgPrint("CompBatt: ENTERING BatteryIoctl\n"); /* Initialize the event and IRP */ KeInitializeEvent(&Event, SynchronizationEvent, 0); Irp = IoBuildDeviceIoControlRequest(IoControlCode, DeviceObject, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength, InternalDeviceIoControl, &Event, &IoStatusBlock); if (Irp) { /* Call the class driver miniport */ Status = IofCallDriver(DeviceObject, Irp); if (Status == STATUS_PENDING) { /* Wait for result */ KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); Status = IoStatusBlock.Status; } /* Print failure */ if (!(NT_SUCCESS(Status)) && (CompBattDebug & 8)) DbgPrint("BatteryIoctl: Irp failed - %x\n", Status); /* Done */ if (CompBattDebug & 0x100) DbgPrint("CompBatt: EXITING BatteryIoctl\n"); } else { /* Out of memory */ if (CompBattDebug & 8) DbgPrint("BatteryIoctl: couldn't create Irp\n"); Status = STATUS_INSUFFICIENT_RESOURCES; } /* Return status */ return Status; }
int DiskPerfForwardIrpSynchronous(int DeviceObject , int Irp ) { int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int deviceExtension ; int event = __VERIFIER_nondet_int() ; int status ; int nextIrpSp__Control ; int irpSp ; int nextIrpSp ; int irpSp__Context ; int irpSp__Control ; int irpSp___0 ; long __cil_tmp15 ; { deviceExtension = DeviceObject__DeviceExtension; irpSp = Irp__Tail__Overlay__CurrentStackLocation; nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; nextIrpSp__Control = 0; if (s != NP) { { errorFn(); } } else { if (compRegistered != 0) { { errorFn(); } } else { compRegistered = 1; routine = 0; } } { irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation - 1; irpSp__Context = event; irpSp__Control = 224; status = IofCallDriver(deviceExtension__TargetDeviceObject, Irp); } { __cil_tmp15 = (long )status; if (__cil_tmp15 == 259L) { { KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); status = myStatus; } } } return (status); } }
int DiskPerfShutdownFlush(int DiskPerfShutdownFlush_DeviceObject , int DiskPerfShutdownFlush_Irp ) { int DiskPerfShutdownFlush_DeviceObject__DeviceExtension ; int DiskPerfShutdownFlush_Irp__CurrentLocation ; int DiskPerfShutdownFlush_Irp__Tail__Overlay__CurrentStackLocation ; int DiskPerfShutdownFlush_deviceExtension__TargetDeviceObject ; int DiskPerfShutdownFlush_deviceExtension ; int DiskPerfShutdownFlush_tmp ; { DiskPerfShutdownFlush_deviceExtension = DiskPerfShutdownFlush_DeviceObject__DeviceExtension; DiskPerfShutdownFlush_Irp__CurrentLocation = DiskPerfShutdownFlush_Irp__CurrentLocation + 1; DiskPerfShutdownFlush_Irp__Tail__Overlay__CurrentStackLocation = DiskPerfShutdownFlush_Irp__Tail__Overlay__CurrentStackLocation + 1; DiskPerfShutdownFlush_tmp = IofCallDriver(DiskPerfShutdownFlush_deviceExtension__TargetDeviceObject, DiskPerfShutdownFlush_Irp); return (DiskPerfShutdownFlush_tmp); } }
int KbFilter_DispatchPassThrough(int KbFilter_DispatchPassThrough_DeviceObject , int KbFilter_DispatchPassThrough_Irp ) { int KbFilter_DispatchPassThrough_Irp__Tail__Overlay__CurrentStackLocation ; int KbFilter_DispatchPassThrough_Irp__CurrentLocation ; int KbFilter_DispatchPassThrough_DeviceObject__DeviceExtension__TopOfStack ; int KbFilter_DispatchPassThrough_irpStack ; int KbFilter_DispatchPassThrough_tmp ; { KbFilter_DispatchPassThrough_irpStack = KbFilter_DispatchPassThrough_Irp__Tail__Overlay__CurrentStackLocation; safety = safety + (s - NP); s = SKIP1; KbFilter_DispatchPassThrough_Irp__CurrentLocation = KbFilter_DispatchPassThrough_Irp__CurrentLocation + 1; KbFilter_DispatchPassThrough_Irp__Tail__Overlay__CurrentStackLocation = KbFilter_DispatchPassThrough_Irp__Tail__Overlay__CurrentStackLocation + 1; KbFilter_DispatchPassThrough_tmp = IofCallDriver(KbFilter_DispatchPassThrough_DeviceObject__DeviceExtension__TopOfStack, KbFilter_DispatchPassThrough_Irp); return (KbFilter_DispatchPassThrough_tmp); } }
int DiskPerfShutdownFlush(int DeviceObject , int Irp ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int deviceExtension ; int tmp ; { { deviceExtension = DeviceObject__DeviceExtension; Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; tmp = IofCallDriver(deviceExtension__TargetDeviceObject, Irp); } return (tmp); } }
int DiskPerfSendToNextDriver(int DiskPerfSendToNextDriver_DeviceObject , int DiskPerfSendToNextDriver_Irp ) { int DiskPerfSendToNextDriver_Irp__CurrentLocation ; int DiskPerfSendToNextDriver_Irp__Tail__Overlay__CurrentStackLocation ; int DiskPerfSendToNextDriver_DeviceObject__DeviceExtension ; int DiskPerfSendToNextDriver_deviceExtension__TargetDeviceObject ; int DiskPerfSendToNextDriver_deviceExtension ; int DiskPerfSendToNextDriver_tmp ; { safety = safety + (s - NP); s = SKIP1; DiskPerfSendToNextDriver_Irp__CurrentLocation = DiskPerfSendToNextDriver_Irp__CurrentLocation + 1; DiskPerfSendToNextDriver_Irp__Tail__Overlay__CurrentStackLocation = DiskPerfSendToNextDriver_Irp__Tail__Overlay__CurrentStackLocation + 1; DiskPerfSendToNextDriver_deviceExtension = DiskPerfSendToNextDriver_DeviceObject__DeviceExtension; DiskPerfSendToNextDriver_tmp = IofCallDriver(DiskPerfSendToNextDriver_deviceExtension__TargetDeviceObject, DiskPerfSendToNextDriver_Irp); return (DiskPerfSendToNextDriver_tmp); } }
int DiskPerfForwardIrpSynchronous(int DiskPerfForwardIrpSynchronous_DeviceObject , int DiskPerfForwardIrpSynchronous_Irp ) { int DiskPerfForwardIrpSynchronous_Irp__Tail__Overlay__CurrentStackLocation ; int DiskPerfForwardIrpSynchronous_DeviceObject__DeviceExtension ; int DiskPerfForwardIrpSynchronous_deviceExtension__TargetDeviceObject ; int DiskPerfForwardIrpSynchronous_deviceExtension ; int DiskPerfForwardIrpSynchronous_event ; int DiskPerfForwardIrpSynchronous_status ; int DiskPerfForwardIrpSynchronous_nextIrpSp__Control ; int DiskPerfForwardIrpSynchronous_irpSp ; int DiskPerfForwardIrpSynchronous_nextIrpSp ; int DiskPerfForwardIrpSynchronous_irpSp__Context ; int DiskPerfForwardIrpSynchronous_irpSp__Control ; int DiskPerfForwardIrpSynchronous_irpSp___0 ; int DiskPerfForwardIrpSynchronous_CIL___Tmp15 ; { DiskPerfForwardIrpSynchronous_deviceExtension = DiskPerfForwardIrpSynchronous_DeviceObject__DeviceExtension; DiskPerfForwardIrpSynchronous_irpSp = DiskPerfForwardIrpSynchronous_Irp__Tail__Overlay__CurrentStackLocation; DiskPerfForwardIrpSynchronous_nextIrpSp = DiskPerfForwardIrpSynchronous_Irp__Tail__Overlay__CurrentStackLocation - 1; DiskPerfForwardIrpSynchronous_nextIrpSp__Control = 0; safety = safety + (s - NP); safety = safety + (compRegistered - 0); compRegistered = 1; routine = 0; DiskPerfForwardIrpSynchronous_irpSp___0 = DiskPerfForwardIrpSynchronous_Irp__Tail__Overlay__CurrentStackLocation - 1; DiskPerfForwardIrpSynchronous_irpSp__Context = DiskPerfForwardIrpSynchronous_event; DiskPerfForwardIrpSynchronous_irpSp__Control = 224; DiskPerfForwardIrpSynchronous_status = IofCallDriver(DiskPerfForwardIrpSynchronous_deviceExtension__TargetDeviceObject, DiskPerfForwardIrpSynchronous_Irp); DiskPerfForwardIrpSynchronous_CIL___Tmp15 = DiskPerfForwardIrpSynchronous_status; if ((DiskPerfForwardIrpSynchronous_CIL___Tmp15 >= 259) && (DiskPerfForwardIrpSynchronous_CIL___Tmp15 <= 259)) { KeWaitForSingleObject(DiskPerfForwardIrpSynchronous_event, Executive, KernelMode, 0, 0); DiskPerfForwardIrpSynchronous_status = myStatus; } return (DiskPerfForwardIrpSynchronous_status); } }
int DiskPerfDeviceControl(int DeviceObject , int Irp ) { int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int currentIrpStack__Parameters__DeviceIoControl__IoControlCode = __VERIFIER_nondet_int() ; int currentIrpStack__Parameters__DeviceIoControl__OutputBufferLength = __VERIFIER_nondet_int() ; int sizeof__DISK_PERFORMANCE = __VERIFIER_nondet_int() ; int Irp__IoStatus__Information ; int deviceExtension__DiskCounters = __VERIFIER_nondet_int() ; int Irp__AssociatedIrp__SystemBuffer = __VERIFIER_nondet_int() ; int deviceExtension__Processors = __VERIFIER_nondet_int() ; int totalCounters__QueueDepth ; int deviceExtension__QueueDepth = __VERIFIER_nondet_int() ; int Irp__IoStatus__Status ; int deviceExtension ; int currentIrpStack ; int status ; int i ; int totalCounters ; int diskCounters ; int tmp ; int __cil_tmp24 ; int __cil_tmp25 ; int __cil_tmp26 ; { deviceExtension = DeviceObject__DeviceExtension; currentIrpStack = Irp__Tail__Overlay__CurrentStackLocation; { __cil_tmp24 = 32; __cil_tmp25 = 458752; __cil_tmp26 = 458784; if (currentIrpStack__Parameters__DeviceIoControl__IoControlCode == __cil_tmp26) { if (currentIrpStack__Parameters__DeviceIoControl__OutputBufferLength < sizeof__DISK_PERFORMANCE) { status = -1073741789; Irp__IoStatus__Information = 0; } else { diskCounters = deviceExtension__DiskCounters; if (diskCounters == 0) { { Irp__IoStatus__Status = -1073741823; myStatus = -1073741823; IofCompleteRequest(Irp, 0); } return (-1073741823); } totalCounters = Irp__AssociatedIrp__SystemBuffer; i = 0; { while (1) { while_0_continue: /* CIL Label */ ; if (i >= deviceExtension__Processors) { goto while_1_break; } i ++; } while_0_break: /* CIL Label */ ; } while_1_break: totalCounters__QueueDepth = deviceExtension__QueueDepth; status = 0; Irp__IoStatus__Information = sizeof__DISK_PERFORMANCE; } { Irp__IoStatus__Status = status; myStatus = status; IofCompleteRequest(Irp, 0); } return (status); } else { { Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; tmp = IofCallDriver(deviceExtension__TargetDeviceObject, Irp); } return (tmp); } } } }
int DiskPerfDeviceControl(int DiskPerfDeviceControl_DeviceObject , int DiskPerfDeviceControl_Irp ) { int DiskPerfDeviceControl_Irp__CurrentLocation ; int DiskPerfDeviceControl_Irp__Tail__Overlay__CurrentStackLocation ; int DiskPerfDeviceControl_DeviceObject__DeviceExtension ; int DiskPerfDeviceControl_deviceExtension__TargetDeviceObject ; int DiskPerfDeviceControl_currentIrpStack__Parameters__DeviceIoControl__IoControlCode ; int DiskPerfDeviceControl_currentIrpStack__Parameters__DeviceIoControl__OutputBufferLength ; int DiskPerfDeviceControl_sizeof__DISK_PERFORMANCE ; int DiskPerfDeviceControl_Irp__IoStatus__Information ; int DiskPerfDeviceControl_deviceExtension__DiskCounters ; int DiskPerfDeviceControl_Irp__AssociatedIrp__SystemBuffer ; int DiskPerfDeviceControl_totalCounters__QueueDepth ; int DiskPerfDeviceControl_deviceExtension__QueueDepth ; int DiskPerfDeviceControl_Irp__IoStatus__Status ; int DiskPerfDeviceControl_deviceExtension ; int DiskPerfDeviceControl_currentIrpStack ; int DiskPerfDeviceControl_status ; int DiskPerfDeviceControl_i ; int DiskPerfDeviceControl_totalCounters ; int DiskPerfDeviceControl_diskCounters ; int DiskPerfDeviceControl_tmp ; int DiskPerfDeviceControl_CIL___Tmp24 ; int DiskPerfDeviceControl_CIL___Tmp25 ; int DiskPerfDeviceControl_CIL___Tmp26 ; int retres27 ; int TRACER_returning ; { TRACER_returning = 0; DiskPerfDeviceControl_deviceExtension = DiskPerfDeviceControl_DeviceObject__DeviceExtension; DiskPerfDeviceControl_currentIrpStack = DiskPerfDeviceControl_Irp__Tail__Overlay__CurrentStackLocation; DiskPerfDeviceControl_CIL___Tmp24 = 32; DiskPerfDeviceControl_CIL___Tmp25 = 458752; DiskPerfDeviceControl_CIL___Tmp26 = 458784; if ((DiskPerfDeviceControl_currentIrpStack__Parameters__DeviceIoControl__IoControlCode >= DiskPerfDeviceControl_CIL___Tmp26) && (DiskPerfDeviceControl_currentIrpStack__Parameters__DeviceIoControl__IoControlCode <= DiskPerfDeviceControl_CIL___Tmp26)) { if (DiskPerfDeviceControl_currentIrpStack__Parameters__DeviceIoControl__OutputBufferLength < DiskPerfDeviceControl_sizeof__DISK_PERFORMANCE) { DiskPerfDeviceControl_status = -1073741789; DiskPerfDeviceControl_Irp__IoStatus__Information = 0; } else { DiskPerfDeviceControl_diskCounters = DiskPerfDeviceControl_deviceExtension__DiskCounters; if ((DiskPerfDeviceControl_diskCounters >= 0) && (DiskPerfDeviceControl_diskCounters <= 0)) { DiskPerfDeviceControl_Irp__IoStatus__Status = -1073741823; myStatus = -1073741823; IofCompleteRequest(DiskPerfDeviceControl_Irp, 0); retres27 = -1073741823; TRACER_returning = 1; } else { DiskPerfDeviceControl_totalCounters = DiskPerfDeviceControl_Irp__AssociatedIrp__SystemBuffer; DiskPerfDeviceControl_i = 0; DiskPerfDeviceControl_totalCounters__QueueDepth = DiskPerfDeviceControl_deviceExtension__QueueDepth; DiskPerfDeviceControl_status = 0; DiskPerfDeviceControl_Irp__IoStatus__Information = DiskPerfDeviceControl_sizeof__DISK_PERFORMANCE; } } if (TRACER_returning <= 0) { DiskPerfDeviceControl_Irp__IoStatus__Status = DiskPerfDeviceControl_status; myStatus = DiskPerfDeviceControl_status; IofCompleteRequest(DiskPerfDeviceControl_Irp, 0); retres27 = DiskPerfDeviceControl_status; } } else { DiskPerfDeviceControl_Irp__CurrentLocation = DiskPerfDeviceControl_Irp__CurrentLocation + 1; DiskPerfDeviceControl_Irp__Tail__Overlay__CurrentStackLocation = DiskPerfDeviceControl_Irp__Tail__Overlay__CurrentStackLocation + 1; DiskPerfDeviceControl_tmp = IofCallDriver(DiskPerfDeviceControl_deviceExtension__TargetDeviceObject, DiskPerfDeviceControl_Irp); retres27 = DiskPerfDeviceControl_tmp; } return (retres27); } }
int KbFilter_PnP(int KbFilter_PnP_DeviceObject , int KbFilter_PnP_Irp ) { int KbFilter_PnP_devExt ; int KbFilter_PnP_irpStack ; int KbFilter_PnP_status ; int KbFilter_PnP_event ; int KbFilter_PnP_DeviceObject__DeviceExtension ; int KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation ; int KbFilter_PnP_irpStack__MinorFunction ; int KbFilter_PnP_devExt__TopOfStack ; int KbFilter_PnP_devExt__Started ; int KbFilter_PnP_devExt__Removed ; int KbFilter_PnP_devExt__SurpriseRemoved ; int KbFilter_PnP_Irp__IoStatus__Status ; int KbFilter_PnP_Irp__IoStatus__Information ; int KbFilter_PnP_Irp__CurrentLocation ; int KbFilter_PnP_irpSp ; int KbFilter_PnP_nextIrpSp ; int KbFilter_PnP_nextIrpSp__Control ; int KbFilter_PnP_irpSp___0 ; int KbFilter_PnP_irpSp__Context ; int KbFilter_PnP_irpSp__Control ; long KbFilter_PnP_CIL___Tmp23 ; { KbFilter_PnP_status = 0; KbFilter_PnP_devExt = KbFilter_PnP_DeviceObject__DeviceExtension; KbFilter_PnP_irpStack = KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation; if ((KbFilter_PnP_irpStack__MinorFunction >= 0) && (KbFilter_PnP_irpStack__MinorFunction <= 0)) { KbFilter_PnP_irpSp = KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation; KbFilter_PnP_nextIrpSp = KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation - 1; KbFilter_PnP_nextIrpSp__Control = 0; safety = safety + (s - NP); safety = safety + (compRegistered - 0); compRegistered = 1; KbFilter_PnP_irpSp___0 = KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation - 1; KbFilter_PnP_irpSp__Context = KbFilter_PnP_event; KbFilter_PnP_irpSp__Control = 224; KbFilter_PnP_status = IofCallDriver(KbFilter_PnP_devExt__TopOfStack, KbFilter_PnP_Irp); KbFilter_PnP_CIL___Tmp23 = (long )KbFilter_PnP_status; if ((KbFilter_PnP_CIL___Tmp23 >= 259L) && (KbFilter_PnP_CIL___Tmp23 <= 259L)) { KeWaitForSingleObject(KbFilter_PnP_event, Executive, KernelMode, 0, 0); } if (KbFilter_PnP_status >= 0) { if (myStatus >= 0) { KbFilter_PnP_devExt__Started = 1; KbFilter_PnP_devExt__Removed = 0; KbFilter_PnP_devExt__SurpriseRemoved = 0; } } KbFilter_PnP_Irp__IoStatus__Status = KbFilter_PnP_status; myStatus = KbFilter_PnP_status; KbFilter_PnP_Irp__IoStatus__Information = 0; IofCompleteRequest(KbFilter_PnP_Irp, 0); } else { if ((KbFilter_PnP_irpStack__MinorFunction >= 23) && (KbFilter_PnP_irpStack__MinorFunction <= 23)) { KbFilter_PnP_devExt__SurpriseRemoved = 1; safety = safety + (s - NP); s = SKIP1; KbFilter_PnP_Irp__CurrentLocation = KbFilter_PnP_Irp__CurrentLocation + 1; KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation = KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation + 1; KbFilter_PnP_status = IofCallDriver(KbFilter_PnP_devExt__TopOfStack, KbFilter_PnP_Irp); } else { if ((KbFilter_PnP_irpStack__MinorFunction >= 2) && (KbFilter_PnP_irpStack__MinorFunction <= 2)) { KbFilter_PnP_devExt__Removed = 1; safety = safety + (s - NP); s = SKIP1; KbFilter_PnP_Irp__CurrentLocation = KbFilter_PnP_Irp__CurrentLocation + 1; KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation = KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation + 1; IofCallDriver(KbFilter_PnP_devExt__TopOfStack, KbFilter_PnP_Irp); KbFilter_PnP_status = 0; } else { safety = safety + (s - NP); s = SKIP1; KbFilter_PnP_Irp__CurrentLocation = KbFilter_PnP_Irp__CurrentLocation + 1; KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation = KbFilter_PnP_Irp__Tail__Overlay__CurrentStackLocation + 1; KbFilter_PnP_status = IofCallDriver(KbFilter_PnP_devExt__TopOfStack, KbFilter_PnP_Irp); } } } return (KbFilter_PnP_status); } }
int KbFilter_PnP(int DeviceObject , int Irp ) { int devExt ; int irpStack ; int status ; int event ; int DeviceObject__DeviceExtension ; int Irp__Tail__Overlay__CurrentStackLocation ; int irpStack__MinorFunction ; int devExt__TopOfStack ; int devExt__Started ; int devExt__Removed ; int devExt__SurpriseRemoved ; int Irp__IoStatus__Status ; int Irp__IoStatus__Information ; int Irp__CurrentLocation ; int irpSp ; int nextIrpSp ; int nextIrpSp__Control ; int irpSp___0 ; int irpSp__Context ; int irpSp__Control ; long __cil_tmp23 ; { #line 101 status = 0; #line 102 devExt = DeviceObject__DeviceExtension; #line 103 irpStack = Irp__Tail__Overlay__CurrentStackLocation; #line 104 if (irpStack__MinorFunction == 0) { goto switch_0_0; } else { #line 107 if (irpStack__MinorFunction == 23) { goto switch_0_23; } else { #line 110 if (irpStack__MinorFunction == 2) { goto switch_0_2; } else { #line 113 if (irpStack__MinorFunction == 1) { goto switch_0_1; } else { #line 116 if (irpStack__MinorFunction == 5) { goto switch_0_1; } else { #line 119 if (irpStack__MinorFunction == 3) { goto switch_0_1; } else { #line 122 if (irpStack__MinorFunction == 6) { goto switch_0_1; } else { #line 125 if (irpStack__MinorFunction == 13) { goto switch_0_1; } else { #line 128 if (irpStack__MinorFunction == 4) { goto switch_0_1; } else { #line 131 if (irpStack__MinorFunction == 7) { goto switch_0_1; } else { #line 134 if (irpStack__MinorFunction == 8) { goto switch_0_1; } else { #line 137 if (irpStack__MinorFunction == 9) { goto switch_0_1; } else { #line 140 if (irpStack__MinorFunction == 12) { goto switch_0_1; } else { #line 143 if (irpStack__MinorFunction == 10) { goto switch_0_1; } else { #line 146 if (irpStack__MinorFunction == 11) { goto switch_0_1; } else { #line 149 if (irpStack__MinorFunction == 15) { goto switch_0_1; } else { #line 152 if (irpStack__MinorFunction == 16) { goto switch_0_1; } else { #line 155 if (irpStack__MinorFunction == 17) { goto switch_0_1; } else { #line 158 if (irpStack__MinorFunction == 18) { goto switch_0_1; } else { #line 161 if (irpStack__MinorFunction == 19) { goto switch_0_1; } else { #line 164 if (irpStack__MinorFunction == 20) { goto switch_0_1; } else { goto switch_0_1; #line 169 if (0) { switch_0_0: #line 171 irpSp = Irp__Tail__Overlay__CurrentStackLocation; #line 172 nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 173 nextIrpSp__Control = 0; #line 174 if (s != NP) { { #line 176 errorFn(); } } else { #line 179 if (compRegistered != 0) { { #line 181 errorFn(); } } else { #line 184 compRegistered = 1; } } { #line 188 irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 189 irpSp__Control = 224; #line 192 status = IofCallDriver(devExt__TopOfStack, Irp); } { #line 197 __cil_tmp23 = (long )status; #line 197 if (__cil_tmp23 == 259 ) { { #line 199 KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); } } } #line 206 if (status >= 0) { #line 207 if (myStatus >= 0) { #line 208 devExt__Started = 1; #line 209 devExt__Removed = 0; #line 210 devExt__SurpriseRemoved = 0; } } { #line 218 Irp__IoStatus__Status = status; #line 219 myStatus = status; #line 220 Irp__IoStatus__Information = 0; #line 221 IofCompleteRequest(Irp, 0); } goto switch_0_break; switch_0_23: #line 225 devExt__SurpriseRemoved = 1; #line 226 if (s == NP) { #line 227 s = SKIP1; } else { { #line 230 errorFn(); } } { #line 234 Irp__CurrentLocation ++; #line 235 Irp__Tail__Overlay__CurrentStackLocation ++; #line 236 status = IofCallDriver(devExt__TopOfStack, Irp); } goto switch_0_break; switch_0_2: #line 241 devExt__Removed = 1; #line 242 if (s == NP) { #line 243 s = SKIP1; } else { { #line 246 errorFn(); } } { #line 250 Irp__CurrentLocation ++; #line 251 Irp__Tail__Overlay__CurrentStackLocation ++; #line 252 IofCallDriver(devExt__TopOfStack, Irp); #line 253 status = 0; } goto switch_0_break; switch_0_1: ; #line 275 if (s == NP) { #line 276 s = SKIP1; } else { { #line 279 errorFn(); } } { #line 283 Irp__CurrentLocation ++; #line 284 Irp__Tail__Overlay__CurrentStackLocation ++; #line 285 status = IofCallDriver(devExt__TopOfStack, Irp); } goto switch_0_break; } else { switch_0_break: ; } } } } } } } } } } } } } } } } } } } } } } #line 314 return (status); } }
int FloppyPnp(int DeviceObject , int Irp ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int Irp__IoStatus__Information ; int Irp__IoStatus__Status ; int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int disketteExtension__IsRemoved = __VERIFIER_nondet_int() ; int disketteExtension__IsStarted = __VERIFIER_nondet_int() ; int disketteExtension__TargetObject = __VERIFIER_nondet_int() ; int disketteExtension__HoldNewRequests ; int disketteExtension__FloppyThread = __VERIFIER_nondet_int() ; int disketteExtension__InterfaceString__Buffer = __VERIFIER_nondet_int() ; int disketteExtension__InterfaceString = __VERIFIER_nondet_int() ; int disketteExtension__ArcName__Length = __VERIFIER_nondet_int() ; int disketteExtension__ArcName = __VERIFIER_nondet_int() ; int irpSp__MinorFunction = __VERIFIER_nondet_int() ; int IoGetConfigurationInformation__FloppyCount = __VERIFIER_nondet_int() ; int irpSp ; int disketteExtension ; int ntStatus ; int doneEvent = __VERIFIER_nondet_int() ; int irpSp___0 ; int nextIrpSp ; int nextIrpSp__Control ; int irpSp___1 ; int irpSp__Context ; int irpSp__Control ; long __cil_tmp29 ; long __cil_tmp30 ; { #line 197 ntStatus = 0; #line 198 PagingReferenceCount ++; #line 199 if (PagingReferenceCount == 1) { } #line 204 disketteExtension = DeviceObject__DeviceExtension; #line 205 irpSp = Irp__Tail__Overlay__CurrentStackLocation; #line 206 if (disketteExtension__IsRemoved) { { #line 208 Irp__IoStatus__Information = 0; #line 209 Irp__IoStatus__Status = -1073741738; #line 210 myStatus = -1073741738; #line 211 IofCompleteRequest(Irp, 0); } #line 213 return (-1073741738); } #line 217 if (irpSp__MinorFunction == 0) { goto switch_0_0; } else { #line 220 if (irpSp__MinorFunction == 5) { goto switch_0_5; } else { #line 223 if (irpSp__MinorFunction == 1) { goto switch_0_5; } else { #line 226 if (irpSp__MinorFunction == 6) { goto switch_0_6; } else { #line 229 if (irpSp__MinorFunction == 3) { goto switch_0_6; } else { #line 232 if (irpSp__MinorFunction == 4) { goto switch_0_4; } else { #line 235 if (irpSp__MinorFunction == 2) { goto switch_0_2; } else { goto switch_0_default; #line 240 if (0) { switch_0_0: { #line 243 ntStatus = FloppyStartDevice(DeviceObject, Irp); } goto switch_0_break; switch_0_5: #line 248 if (irpSp__MinorFunction == 5) { } #line 253 if (! disketteExtension__IsStarted) { #line 254 if (s == NP) { #line 255 s = SKIP1; } else { { #line 258 errorFn(); } } { #line 262 Irp__CurrentLocation ++; #line 263 Irp__Tail__Overlay__CurrentStackLocation ++; #line 264 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } #line 266 return (ntStatus); } { #line 271 disketteExtension__HoldNewRequests = 1; #line 272 ntStatus = FlQueueIrpToThread(Irp, disketteExtension); } { #line 274 __cil_tmp29 = (long )ntStatus; #line 274 if (__cil_tmp29 == 259L) { { #line 276 KeWaitForSingleObject(disketteExtension__FloppyThread, Executive, KernelMode, 0, 0); } #line 279 if (disketteExtension__FloppyThread != 0) { } #line 284 disketteExtension__FloppyThread = 0; #line 285 Irp__IoStatus__Status = 0; #line 286 myStatus = 0; #line 287 if (s == NP) { #line 288 s = SKIP1; } else { { #line 291 errorFn(); } } { #line 295 Irp__CurrentLocation ++; #line 296 Irp__Tail__Overlay__CurrentStackLocation ++; #line 297 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } } else { { #line 301 ntStatus = -1073741823; #line 302 Irp__IoStatus__Status = ntStatus; #line 303 myStatus = ntStatus; #line 304 Irp__IoStatus__Information = 0; #line 305 IofCompleteRequest(Irp, 0); } } } goto switch_0_break; switch_0_6: #line 311 if (irpSp__MinorFunction == 6) { } #line 316 if (! disketteExtension__IsStarted) { #line 317 Irp__IoStatus__Status = 0; #line 318 myStatus = 0; #line 319 if (s == NP) { #line 320 s = SKIP1; } else { { #line 323 errorFn(); } } { #line 327 Irp__CurrentLocation ++; #line 328 Irp__Tail__Overlay__CurrentStackLocation ++; #line 329 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } } else { #line 332 Irp__IoStatus__Status = 0; #line 333 myStatus = 0; #line 334 irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation; #line 335 nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 336 nextIrpSp__Control = 0; #line 337 if (s != NP) { { #line 339 errorFn(); } } else { #line 342 if (compRegistered != 0) { { #line 344 errorFn(); } } else { #line 347 compRegistered = 1; } } { #line 351 irpSp___1 = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 352 irpSp__Context = doneEvent; #line 353 irpSp__Control = 224; #line 357 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } { #line 359 __cil_tmp30 = (long )ntStatus; #line 359 if (__cil_tmp30 == 259L) { { #line 361 KeWaitForSingleObject(doneEvent, Executive, KernelMode, 0, 0); #line 362 ntStatus = myStatus; } } } { #line 368 disketteExtension__HoldNewRequests = 0; #line 369 Irp__IoStatus__Status = ntStatus; #line 370 myStatus = ntStatus; #line 371 Irp__IoStatus__Information = 0; #line 372 IofCompleteRequest(Irp, 0); } } goto switch_0_break; switch_0_4: #line 377 disketteExtension__IsStarted = 0; #line 378 Irp__IoStatus__Status = 0; #line 379 myStatus = 0; #line 380 if (s == NP) { #line 381 s = SKIP1; } else { { #line 384 errorFn(); } } { #line 388 Irp__CurrentLocation ++; #line 389 Irp__Tail__Overlay__CurrentStackLocation ++; #line 390 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } goto switch_0_break; switch_0_2: #line 394 disketteExtension__HoldNewRequests = 0; #line 395 disketteExtension__IsStarted = 0; #line 396 disketteExtension__IsRemoved = 1; #line 397 if (s == NP) { #line 398 s = SKIP1; } else { { #line 401 errorFn(); } } { #line 405 Irp__CurrentLocation ++; #line 406 Irp__Tail__Overlay__CurrentStackLocation ++; #line 407 Irp__IoStatus__Status = 0; #line 408 myStatus = 0; #line 409 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } #line 411 if (disketteExtension__InterfaceString__Buffer != 0) { { #line 413 IoSetDeviceInterfaceState(disketteExtension__InterfaceString, 0); } } #line 419 if (disketteExtension__ArcName__Length != 0) { { #line 421 IoDeleteSymbolicLink(disketteExtension__ArcName); } } #line 426 IoGetConfigurationInformation__FloppyCount --; goto switch_0_break; switch_0_default: ; #line 429 if (s == NP) { #line 430 s = SKIP1; } else { { #line 433 errorFn(); } } { #line 437 Irp__CurrentLocation ++; #line 438 Irp__Tail__Overlay__CurrentStackLocation ++; #line 439 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } } else { switch_0_break: ; } } } } } } } } #line 452 PagingReferenceCount --; #line 453 if (PagingReferenceCount == 0) { } #line 458 return (ntStatus); } }
int DiskPerfRegisterDevice(int DeviceObject ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int sizeof__number = __VERIFIER_nondet_int() ; int ioStatus__Status = __VERIFIER_nondet_int() ; int sizeof__VOLUME_NUMBER = __VERIFIER_nondet_int() ; int volumeNumber__VolumeManagerName__0 = __VERIFIER_nondet_int() ; int status ; int ioStatus = __VERIFIER_nondet_int() ; int event = __VERIFIER_nondet_int() ; int deviceExtension ; int irp ; int number = __VERIFIER_nondet_int() ; int registrationFlag ; int sizeof__MOUNTDEV_NAME = __VERIFIER_nondet_int() ; int output__NameLength = __VERIFIER_nondet_int() ; int outputSize ; int output = __VERIFIER_nondet_int() ; int volumeNumber = __VERIFIER_nondet_int() ; int __cil_tmp20 ; int __cil_tmp21 ; int __cil_tmp22 ; long __cil_tmp23 ; int __cil_tmp24 ; int __cil_tmp25 ; int __cil_tmp26 ; long __cil_tmp27 ; unsigned long __cil_tmp28 ; int __cil_tmp29 ; int __cil_tmp30 ; int __cil_tmp31 ; long __cil_tmp32 ; int __cil_tmp33 ; int __cil_tmp34 ; int __cil_tmp35 ; int __cil_tmp36 ; long __cil_tmp37 ; int __cil_tmp38 ; int __cil_tmp39 ; { { #line 489 registrationFlag = 0; #line 490 deviceExtension = DeviceObject__DeviceExtension; #line 491 __cil_tmp20 = 4224; #line 491 __cil_tmp21 = 2949120; #line 491 __cil_tmp22 = 2953344; #line 491 irp = IoBuildDeviceIoControlRequest(__cil_tmp22, deviceExtension__TargetDeviceObject, 0, 0, number, sizeof__number, 0, event, ioStatus); } #line 494 if (! irp) { #line 495 return (-1073741670); } { #line 500 status = IofCallDriver(deviceExtension__TargetDeviceObject, irp); } { #line 502 __cil_tmp23 = (long )status; #line 502 if (__cil_tmp23 == 259L) { { #line 504 KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); #line 505 status = ioStatus__Status; } } } #line 510 if (status < 0) { #line 513 outputSize = sizeof__MOUNTDEV_NAME; #line 514 if (! output) { #line 515 return (-1073741670); } { #line 520 __cil_tmp24 = 8; #line 520 __cil_tmp25 = 5046272; #line 520 __cil_tmp26 = 5046280; #line 520 irp = IoBuildDeviceIoControlRequest(__cil_tmp26, deviceExtension__TargetDeviceObject, 0, 0, output, outputSize, 0, event, ioStatus); } #line 523 if (! irp) { #line 524 return (-1073741670); } { #line 529 status = IofCallDriver(deviceExtension__TargetDeviceObject, irp); } { #line 531 __cil_tmp27 = (long )status; #line 531 if (__cil_tmp27 == 259L) { { #line 533 KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); #line 534 status = ioStatus__Status; } } } { #line 539 __cil_tmp28 = (unsigned long )status; #line 539 if (__cil_tmp28 == -2147483643) { #line 540 outputSize = sizeof__MOUNTDEV_NAME + output__NameLength; #line 541 if (! output) { #line 542 return (-1073741670); } { #line 547 __cil_tmp29 = 8; #line 547 __cil_tmp30 = 5046272; #line 547 __cil_tmp31 = 5046280; #line 547 irp = IoBuildDeviceIoControlRequest(__cil_tmp31, deviceExtension__TargetDeviceObject, 0, 0, output, outputSize, 0, event, ioStatus); } #line 550 if (! irp) { #line 551 return (-1073741670); } { #line 556 status = IofCallDriver(deviceExtension__TargetDeviceObject, irp); } { #line 558 __cil_tmp32 = (long )status; #line 558 if (__cil_tmp32 == 259L) { { #line 560 KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); #line 561 status = ioStatus__Status; } } } } } { #line 569 if (status < 0) { #line 570 return (status); } } { #line 575 __cil_tmp34 = 28; #line 575 __cil_tmp35 = 5636096; #line 575 __cil_tmp36 = 5636124; #line 575 irp = IoBuildDeviceIoControlRequest(__cil_tmp36, deviceExtension__TargetDeviceObject, 0, 0, volumeNumber, sizeof__VOLUME_NUMBER, 0, event, ioStatus); } #line 579 if (! irp) { #line 580 return (-1073741670); } { #line 585 status = IofCallDriver(deviceExtension__TargetDeviceObject, irp); } { #line 587 __cil_tmp37 = (long )status; #line 587 if (__cil_tmp37 == 259L) { { #line 589 KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); #line 590 status = ioStatus__Status; } } } { #line 595 if (status < 0) { goto _L; } else { #line 598 if (volumeNumber__VolumeManagerName__0 == 0) { _L: #line 600 if (status >= 0) { } } } } } { #line 610 #line 610 if (status < 0) { } } #line 615 return (status); } }
int FloppyStartDevice(int DeviceObject , int Irp ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int Irp__IoStatus__Status ; int disketteExtension__TargetObject = __VERIFIER_nondet_int() ; int disketteExtension__MaxTransferSize ; int disketteExtension__DriveType = __VERIFIER_nondet_int() ; int disketteExtension__PerpendicularMode ; int disketteExtension__DeviceUnit ; int disketteExtension__DriveOnValue ; int disketteExtension__UnderlyingPDO = __VERIFIER_nondet_int() ; int disketteExtension__InterfaceString = __VERIFIER_nondet_int() ; int disketteExtension__IsStarted ; int disketteExtension__HoldNewRequests ; int ntStatus ; int pnpStatus ; int doneEvent = __VERIFIER_nondet_int() ; int fdcInfo = __VERIFIER_nondet_int() ; int fdcInfo__BufferCount ; int fdcInfo__BufferSize ; int fdcInfo__MaxTransferSize = __VERIFIER_nondet_int() ; int fdcInfo__AcpiBios = __VERIFIER_nondet_int() ; int fdcInfo__AcpiFdiSupported = __VERIFIER_nondet_int() ; int fdcInfo__PeripheralNumber = __VERIFIER_nondet_int() ; int fdcInfo__BusType ; int fdcInfo__ControllerNumber = __VERIFIER_nondet_int() ; int fdcInfo__UnitNumber = __VERIFIER_nondet_int() ; int fdcInfo__BusNumber = __VERIFIER_nondet_int() ; int Dc ; int Fp ; int disketteExtension ; int irpSp ; int irpSp___0 ; int nextIrpSp ; int nextIrpSp__Control ; int irpSp___1 ; int irpSp__Control ; int irpSp__Context ; int InterfaceType ; int KUSER_SHARED_DATA__AlternativeArchitecture_NEC98x86 = __VERIFIER_nondet_int() ; long __cil_tmp42 ; int __cil_tmp43 ; int __cil_tmp44 ; int __cil_tmp45 ; int __cil_tmp46 ; int __cil_tmp47 ; int __cil_tmp48 ; int __cil_tmp49 ; { Dc = DiskController; Fp = FloppyDiskPeripheral; disketteExtension = DeviceObject__DeviceExtension; irpSp = Irp__Tail__Overlay__CurrentStackLocation; irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation; nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; nextIrpSp__Control = 0; if (s != NP) { { errorFn(); } } else { if (compRegistered != 0) { { errorFn(); } } else { compRegistered = 1; } } { irpSp___1 = Irp__Tail__Overlay__CurrentStackLocation - 1; irpSp__Context = doneEvent; irpSp__Control = 224; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } { __cil_tmp42 = (long )ntStatus; if (__cil_tmp42 == 259L) { { ntStatus = KeWaitForSingleObject(doneEvent, Executive, KernelMode, 0, 0); ntStatus = myStatus; } } } { fdcInfo__BufferCount = 0; fdcInfo__BufferSize = 0; __cil_tmp43 = 3080; __cil_tmp44 = 458752; __cil_tmp45 = 461832; __cil_tmp46 = 461835; ntStatus = FlFdcDeviceIo(disketteExtension__TargetObject, __cil_tmp46, fdcInfo); } if (ntStatus >= 0) { disketteExtension__MaxTransferSize = fdcInfo__MaxTransferSize; if (fdcInfo__AcpiBios) { if (fdcInfo__AcpiFdiSupported) { { ntStatus = FlAcpiConfigureFloppy(disketteExtension, fdcInfo); } if (disketteExtension__DriveType == 4) { //__cil_tmp47 = uninf1(); //disketteExtension__PerpendicularMode |= __cil_tmp47; } } else { goto _L; } } else { _L: if (disketteExtension__DriveType == 4) { //__cil_tmp48 = uninf1(); //disketteExtension__PerpendicularMode |= __cil_tmp48; } InterfaceType = 0; { while (1) { while_0_continue: /* CIL Label */ ; if (InterfaceType >= MaximumInterfaceType) { goto while_1_break; } { fdcInfo__BusType = InterfaceType; ntStatus = IoQueryDeviceDescription(fdcInfo__BusType, fdcInfo__BusNumber, Dc, fdcInfo__ControllerNumber, Fp, fdcInfo__PeripheralNumber, FlConfigCallBack, disketteExtension); } if (ntStatus >= 0) { goto while_1_break; } InterfaceType ++; } while_0_break: /* CIL Label */ ; } while_1_break: ; } if (ntStatus >= 0) { if (KUSER_SHARED_DATA__AlternativeArchitecture_NEC98x86 != 0) { disketteExtension__DeviceUnit = fdcInfo__UnitNumber; //disketteExtension__DriveOnValue = fdcInfo__UnitNumber; } else { disketteExtension__DeviceUnit = fdcInfo__PeripheralNumber; //__cil_tmp49 = 16 << fdcInfo__PeripheralNumber; //disketteExtension__DriveOnValue = fdcInfo__PeripheralNumber | __cil_tmp49; } { pnpStatus = IoRegisterDeviceInterface(disketteExtension__UnderlyingPDO, MOUNTDEV_MOUNTED_DEVICE_GUID, 0, disketteExtension__InterfaceString); } if (pnpStatus >= 0) { { pnpStatus = IoSetDeviceInterfaceState(disketteExtension__InterfaceString, 1); } } disketteExtension__IsStarted = 1; disketteExtension__HoldNewRequests = 0; } } { Irp__IoStatus__Status = ntStatus; myStatus = ntStatus; IofCompleteRequest(Irp, 0); } return (ntStatus); } }
int DiskPerfRegisterDevice(int DiskPerfRegisterDevice_DeviceObject ) { int DiskPerfRegisterDevice_DeviceObject__DeviceExtension ; int DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject ; int DiskPerfRegisterDevice_sizeof__number ; int DiskPerfRegisterDevice_ioStatus__Status ; int DiskPerfRegisterDevice_sizeof__VOLUME_NUMBER ; int DiskPerfRegisterDevice_status ; int DiskPerfRegisterDevice_ioStatus ; int DiskPerfRegisterDevice_event ; int DiskPerfRegisterDevice_deviceExtension ; int DiskPerfRegisterDevice_irp ; int DiskPerfRegisterDevice_number ; int DiskPerfRegisterDevice_registrationFlag ; int DiskPerfRegisterDevice_sizeof__MOUNTDEV_NAME ; int DiskPerfRegisterDevice_output__NameLength ; int DiskPerfRegisterDevice_outputSize ; int DiskPerfRegisterDevice_output ; int DiskPerfRegisterDevice_volumeNumber ; int DiskPerfRegisterDevice_CIL___Tmp20 ; int DiskPerfRegisterDevice_CIL___Tmp21 ; int DiskPerfRegisterDevice_CIL___Tmp22 ; int DiskPerfRegisterDevice_CIL___Tmp23 ; int DiskPerfRegisterDevice_CIL___Tmp24 ; int DiskPerfRegisterDevice_CIL___Tmp25 ; int DiskPerfRegisterDevice_CIL___Tmp26 ; int DiskPerfRegisterDevice_CIL___Tmp27 ; int DiskPerfRegisterDevice_CIL___Tmp28 ; int DiskPerfRegisterDevice_CIL___Tmp29 ; int DiskPerfRegisterDevice_CIL___Tmp30 ; int DiskPerfRegisterDevice_CIL___Tmp31 ; int DiskPerfRegisterDevice_CIL___Tmp32 ; int DiskPerfRegisterDevice_CIL___Tmp34 ; int DiskPerfRegisterDevice_CIL___Tmp35 ; int DiskPerfRegisterDevice_CIL___Tmp36 ; int DiskPerfRegisterDevice_CIL___Tmp37 ; int retres37 ; int TRACER_returning ; { TRACER_returning = 0; DiskPerfRegisterDevice_registrationFlag = 0; DiskPerfRegisterDevice_deviceExtension = DiskPerfRegisterDevice_DeviceObject__DeviceExtension; DiskPerfRegisterDevice_CIL___Tmp20 = 4224; DiskPerfRegisterDevice_CIL___Tmp21 = 2949120; DiskPerfRegisterDevice_CIL___Tmp22 = 2953344; DiskPerfRegisterDevice_irp = IoBuildDeviceIoControlRequest(DiskPerfRegisterDevice_CIL___Tmp22, DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject, 0, 0, DiskPerfRegisterDevice_number, DiskPerfRegisterDevice_sizeof__number, 0, DiskPerfRegisterDevice_event, DiskPerfRegisterDevice_ioStatus); if ((DiskPerfRegisterDevice_irp >= 0) && (DiskPerfRegisterDevice_irp <= 0)) { retres37 = -1073741670; } else { DiskPerfRegisterDevice_status = IofCallDriver(DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject, DiskPerfRegisterDevice_irp); DiskPerfRegisterDevice_CIL___Tmp23 = DiskPerfRegisterDevice_status; if ((DiskPerfRegisterDevice_CIL___Tmp23 >= 259) && (DiskPerfRegisterDevice_CIL___Tmp23 <= 259)) { KeWaitForSingleObject(DiskPerfRegisterDevice_event, Executive, KernelMode, 0, 0); DiskPerfRegisterDevice_status = DiskPerfRegisterDevice_ioStatus__Status; } if (DiskPerfRegisterDevice_status < 0) { DiskPerfRegisterDevice_outputSize = DiskPerfRegisterDevice_sizeof__MOUNTDEV_NAME; if ((DiskPerfRegisterDevice_output >= 0) && (DiskPerfRegisterDevice_output <= 0)) { retres37 = -1073741670; TRACER_returning = 1; } else { DiskPerfRegisterDevice_CIL___Tmp24 = 8; DiskPerfRegisterDevice_CIL___Tmp25 = 5046272; DiskPerfRegisterDevice_CIL___Tmp26 = 5046280; DiskPerfRegisterDevice_irp = IoBuildDeviceIoControlRequest(DiskPerfRegisterDevice_CIL___Tmp26, DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject, 0, 0, DiskPerfRegisterDevice_output, DiskPerfRegisterDevice_outputSize, 0, DiskPerfRegisterDevice_event, DiskPerfRegisterDevice_ioStatus); if ((DiskPerfRegisterDevice_irp >= 0) && (DiskPerfRegisterDevice_irp <= 0)) { retres37 = -1073741670; TRACER_returning = 1; } else { DiskPerfRegisterDevice_status = IofCallDriver(DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject, DiskPerfRegisterDevice_irp); DiskPerfRegisterDevice_CIL___Tmp27 = DiskPerfRegisterDevice_status; if ((DiskPerfRegisterDevice_CIL___Tmp27 >= 259) && (DiskPerfRegisterDevice_CIL___Tmp27 <= 259)) { KeWaitForSingleObject(DiskPerfRegisterDevice_event, Executive, KernelMode, 0, 0); DiskPerfRegisterDevice_status = DiskPerfRegisterDevice_ioStatus__Status; } DiskPerfRegisterDevice_CIL___Tmp28 = DiskPerfRegisterDevice_status; if ((DiskPerfRegisterDevice_CIL___Tmp28 >= -2147483643) && (DiskPerfRegisterDevice_CIL___Tmp28 <= -2147483643)) { DiskPerfRegisterDevice_outputSize = DiskPerfRegisterDevice_sizeof__MOUNTDEV_NAME + DiskPerfRegisterDevice_output__NameLength; if ((DiskPerfRegisterDevice_output >= 0) && (DiskPerfRegisterDevice_output <= 0)) { retres37 = -1073741670; TRACER_returning = 1; } else { DiskPerfRegisterDevice_CIL___Tmp29 = 8; DiskPerfRegisterDevice_CIL___Tmp30 = 5046272; DiskPerfRegisterDevice_CIL___Tmp31 = 5046280; DiskPerfRegisterDevice_irp = IoBuildDeviceIoControlRequest(DiskPerfRegisterDevice_CIL___Tmp31, DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject, 0, 0, DiskPerfRegisterDevice_output, DiskPerfRegisterDevice_outputSize, 0, DiskPerfRegisterDevice_event, DiskPerfRegisterDevice_ioStatus); if ((DiskPerfRegisterDevice_irp >= 0) && (DiskPerfRegisterDevice_irp <= 0)) { retres37 = -1073741670; TRACER_returning = 1; } else { DiskPerfRegisterDevice_status = IofCallDriver(DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject, DiskPerfRegisterDevice_irp); DiskPerfRegisterDevice_CIL___Tmp32 = DiskPerfRegisterDevice_status; if ((DiskPerfRegisterDevice_CIL___Tmp32 >= 259) && (DiskPerfRegisterDevice_CIL___Tmp32 <= 259)) { KeWaitForSingleObject(DiskPerfRegisterDevice_event, Executive, KernelMode, 0, 0); DiskPerfRegisterDevice_status = DiskPerfRegisterDevice_ioStatus__Status; } } } } if (TRACER_returning <= 0) { if (DiskPerfRegisterDevice_status < 0) { retres37 = DiskPerfRegisterDevice_status; TRACER_returning = 1; } else { DiskPerfRegisterDevice_CIL___Tmp34 = 28; DiskPerfRegisterDevice_CIL___Tmp35 = 5636096; DiskPerfRegisterDevice_CIL___Tmp36 = 5636124; DiskPerfRegisterDevice_irp = IoBuildDeviceIoControlRequest(DiskPerfRegisterDevice_CIL___Tmp36, DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject, 0, 0, DiskPerfRegisterDevice_volumeNumber, DiskPerfRegisterDevice_sizeof__VOLUME_NUMBER, 0, DiskPerfRegisterDevice_event, DiskPerfRegisterDevice_ioStatus); if ((DiskPerfRegisterDevice_irp >= 0) && (DiskPerfRegisterDevice_irp <= 0)) { retres37 = -1073741670; TRACER_returning = 1; } else { DiskPerfRegisterDevice_status = IofCallDriver(DiskPerfRegisterDevice_deviceExtension__TargetDeviceObject, DiskPerfRegisterDevice_irp); DiskPerfRegisterDevice_CIL___Tmp37 = DiskPerfRegisterDevice_status; if ((DiskPerfRegisterDevice_CIL___Tmp37 >= 259) && (DiskPerfRegisterDevice_CIL___Tmp37 <= 259)) { KeWaitForSingleObject(DiskPerfRegisterDevice_event, Executive, KernelMode, 0, 0); DiskPerfRegisterDevice_status = DiskPerfRegisterDevice_ioStatus__Status; } } } } } } } if (TRACER_returning <= 0) { retres37 = DiskPerfRegisterDevice_status; } } return (retres37); } }
int FloppyStartDevice(int DeviceObject , int Irp ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int Irp__IoStatus__Status ; int disketteExtension__TargetObject = __VERIFIER_nondet_int() ; int disketteExtension__MaxTransferSize ; int disketteExtension__DriveType = __VERIFIER_nondet_int() ; int disketteExtension__PerpendicularMode ; int disketteExtension__DeviceUnit ; int disketteExtension__DriveOnValue ; int disketteExtension__UnderlyingPDO = __VERIFIER_nondet_int() ; int disketteExtension__InterfaceString = __VERIFIER_nondet_int() ; int disketteExtension__IsStarted ; int disketteExtension__HoldNewRequests ; int ntStatus ; int pnpStatus ; int doneEvent = __VERIFIER_nondet_int() ; int fdcInfo = __VERIFIER_nondet_int() ; int fdcInfo__BufferCount ; int fdcInfo__BufferSize ; int fdcInfo__MaxTransferSize = __VERIFIER_nondet_int() ; int fdcInfo__AcpiBios = __VERIFIER_nondet_int() ; int fdcInfo__AcpiFdiSupported = __VERIFIER_nondet_int() ; int fdcInfo__PeripheralNumber = __VERIFIER_nondet_int() ; int fdcInfo__BusType ; int fdcInfo__ControllerNumber = __VERIFIER_nondet_int() ; int fdcInfo__UnitNumber = __VERIFIER_nondet_int() ; int fdcInfo__BusNumber = __VERIFIER_nondet_int() ; int Dc ; int Fp ; int disketteExtension ; int irpSp ; int irpSp___0 ; int nextIrpSp ; int nextIrpSp__Control ; int irpSp___1 ; int irpSp__Control ; int irpSp__Context ; int InterfaceType ; int KUSER_SHARED_DATA__AlternativeArchitecture_NEC98x86 = __VERIFIER_nondet_int() ; long __cil_tmp42 ; int __cil_tmp43 ; int __cil_tmp44 ; int __cil_tmp45 ; int __cil_tmp46 ; int __cil_tmp47 ; int __cil_tmp48 ; int __cil_tmp49 ; { #line 503 Dc = DiskController; #line 504 Fp = FloppyDiskPeripheral; #line 505 disketteExtension = DeviceObject__DeviceExtension; #line 506 irpSp = Irp__Tail__Overlay__CurrentStackLocation; #line 507 irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation; #line 508 nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 509 nextIrpSp__Control = 0; #line 510 if (s != NP) { { #line 512 errorFn(); } } else { #line 515 if (compRegistered != 0) { { #line 517 errorFn(); } } else { #line 520 compRegistered = 1; } } { #line 524 irpSp___1 = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 525 irpSp__Context = doneEvent; #line 526 irpSp__Control = 224; #line 530 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } { #line 532 __cil_tmp42 = (long )ntStatus; #line 532 if (__cil_tmp42 == 259L) { { #line 534 ntStatus = KeWaitForSingleObject(doneEvent, Executive, KernelMode, 0, 0); #line 535 ntStatus = myStatus; } } } { #line 541 fdcInfo__BufferCount = 0; #line 542 fdcInfo__BufferSize = 0; #line 543 __cil_tmp43 = 3080; #line 543 __cil_tmp44 = 458752; #line 543 __cil_tmp45 = 461832; #line 543 __cil_tmp46 = 461835; #line 543 ntStatus = FlFdcDeviceIo(disketteExtension__TargetObject, __cil_tmp46, fdcInfo); } #line 546 if (ntStatus >= 0) { #line 547 disketteExtension__MaxTransferSize = fdcInfo__MaxTransferSize; #line 548 if (fdcInfo__AcpiBios) { #line 549 if (fdcInfo__AcpiFdiSupported) { { #line 551 ntStatus = FlAcpiConfigureFloppy(disketteExtension, fdcInfo); } #line 553 if (disketteExtension__DriveType == 4) { #line 554 //__cil_tmp47 = uninf1(); #line 554 //disketteExtension__PerpendicularMode |= __cil_tmp47; } } else { goto _L; } } else { _L: #line 563 if (disketteExtension__DriveType == 4) { #line 564 //__cil_tmp48 = uninf1(); #line 564 //disketteExtension__PerpendicularMode |= __cil_tmp48; } #line 568 InterfaceType = 0; { #line 570 while (1) { while_0_continue: /* CIL Label */ ; #line 572 if (InterfaceType >= MaximumInterfaceType) { goto while_1_break; } { #line 578 fdcInfo__BusType = InterfaceType; #line 579 ntStatus = IoQueryDeviceDescription(fdcInfo__BusType, fdcInfo__BusNumber, Dc, fdcInfo__ControllerNumber, Fp, fdcInfo__PeripheralNumber, FlConfigCallBack, disketteExtension); } #line 583 if (ntStatus >= 0) { goto while_1_break; } #line 588 InterfaceType ++; } while_0_break: /* CIL Label */ ; } while_1_break: ; } #line 593 if (ntStatus >= 0) { #line 594 if (KUSER_SHARED_DATA__AlternativeArchitecture_NEC98x86 != 0) { #line 595 disketteExtension__DeviceUnit = fdcInfo__UnitNumber; #line 596 //disketteExtension__DriveOnValue = fdcInfo__UnitNumber; } else { #line 598 disketteExtension__DeviceUnit = fdcInfo__PeripheralNumber; #line 599 //__cil_tmp49 = 16 << fdcInfo__PeripheralNumber; #line 599 //disketteExtension__DriveOnValue = fdcInfo__PeripheralNumber | __cil_tmp49; } { #line 602 pnpStatus = IoRegisterDeviceInterface(disketteExtension__UnderlyingPDO, MOUNTDEV_MOUNTED_DEVICE_GUID, 0, disketteExtension__InterfaceString); } #line 605 if (pnpStatus >= 0) { { #line 607 pnpStatus = IoSetDeviceInterfaceState(disketteExtension__InterfaceString, 1); } } #line 613 disketteExtension__IsStarted = 1; #line 614 disketteExtension__HoldNewRequests = 0; } } { #line 622 Irp__IoStatus__Status = ntStatus; #line 623 myStatus = ntStatus; #line 624 IofCompleteRequest(Irp, 0); } #line 626 return (ntStatus); } }
int KbFilter_PnP(int DeviceObject , int Irp ) { int devExt ; int irpStack ; int status ; int event = __VERIFIER_nondet_int() ; int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int irpStack__MinorFunction = __VERIFIER_nondet_int() ; int devExt__TopOfStack = __VERIFIER_nondet_int() ; int devExt__Started ; int devExt__Removed ; int devExt__SurpriseRemoved ; int Irp__IoStatus__Status ; int Irp__IoStatus__Information ; int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int irpSp ; int nextIrpSp ; int nextIrpSp__Control ; int irpSp___0 ; int irpSp__Context ; int irpSp__Control ; long __cil_tmp23 ; { #line 107 status = 0; #line 108 devExt = DeviceObject__DeviceExtension; #line 109 irpStack = Irp__Tail__Overlay__CurrentStackLocation; #line 110 if (irpStack__MinorFunction == 0) { goto switch_0_0; } else { #line 113 if (irpStack__MinorFunction == 23) { goto switch_0_23; } else { #line 116 if (irpStack__MinorFunction == 2) { goto switch_0_2; } else { #line 119 if (irpStack__MinorFunction == 1) { goto switch_0_1; } else { #line 122 if (irpStack__MinorFunction == 5) { goto switch_0_1; } else { #line 125 if (irpStack__MinorFunction == 3) { goto switch_0_1; } else { #line 128 if (irpStack__MinorFunction == 6) { goto switch_0_1; } else { #line 131 if (irpStack__MinorFunction == 13) { goto switch_0_1; } else { #line 134 if (irpStack__MinorFunction == 4) { goto switch_0_1; } else { #line 137 if (irpStack__MinorFunction == 7) { goto switch_0_1; } else { #line 140 if (irpStack__MinorFunction == 8) { goto switch_0_1; } else { #line 143 if (irpStack__MinorFunction == 9) { goto switch_0_1; } else { #line 146 if (irpStack__MinorFunction == 12) { goto switch_0_1; } else { #line 149 if (irpStack__MinorFunction == 10) { goto switch_0_1; } else { #line 152 if (irpStack__MinorFunction == 11) { goto switch_0_1; } else { #line 155 if (irpStack__MinorFunction == 15) { goto switch_0_1; } else { #line 158 if (irpStack__MinorFunction == 16) { goto switch_0_1; } else { #line 161 if (irpStack__MinorFunction == 17) { goto switch_0_1; } else { #line 164 if (irpStack__MinorFunction == 18) { goto switch_0_1; } else { #line 167 if (irpStack__MinorFunction == 19) { goto switch_0_1; } else { #line 170 if (irpStack__MinorFunction == 20) { goto switch_0_1; } else { goto switch_0_1; #line 175 if (0) { switch_0_0: #line 177 irpSp = Irp__Tail__Overlay__CurrentStackLocation; #line 178 nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 179 nextIrpSp__Control = 0; #line 180 if (s != NP) { { #line 182 errorFn(); } } else { #line 185 if (compRegistered != 0) { { #line 187 errorFn(); } } else { #line 190 compRegistered = 1; } } { #line 194 irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 195 irpSp__Context = event; #line 196 irpSp__Control = 224; #line 200 status = IofCallDriver(devExt__TopOfStack, Irp); } { #line 203 __cil_tmp23 = (long )status; #line 203 if (__cil_tmp23 == 259) { { #line 205 KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); } } } #line 212 if (status >= 0) { #line 213 if (myStatus >= 0) { #line 214 devExt__Started = 1; #line 215 devExt__Removed = 0; #line 216 devExt__SurpriseRemoved = 0; } } { #line 224 Irp__IoStatus__Status = status; #line 225 myStatus = status; #line 226 Irp__IoStatus__Information = 0; #line 227 IofCompleteRequest(Irp, 0); } goto switch_0_break; switch_0_23: #line 231 devExt__SurpriseRemoved = 1; #line 232 if (s == NP) { #line 233 s = SKIP1; } else { { #line 236 errorFn(); } } { #line 240 Irp__CurrentLocation ++; #line 241 Irp__Tail__Overlay__CurrentStackLocation ++; #line 242 status = IofCallDriver(devExt__TopOfStack, Irp); } goto switch_0_break; switch_0_2: #line 247 devExt__Removed = 1; #line 248 if (s == NP) { #line 249 s = SKIP1; } else { { #line 252 errorFn(); } } { #line 256 Irp__CurrentLocation ++; #line 257 Irp__Tail__Overlay__CurrentStackLocation ++; #line 258 IofCallDriver(devExt__TopOfStack, Irp); #line 259 status = 0; } goto switch_0_break; switch_0_1: ; #line 281 if (s == NP) { #line 282 s = SKIP1; } else { { #line 285 errorFn(); } } { #line 289 Irp__CurrentLocation ++; #line 290 Irp__Tail__Overlay__CurrentStackLocation ++; #line 291 status = IofCallDriver(devExt__TopOfStack, Irp); } goto switch_0_break; } else { switch_0_break: ; } } } } } } } } } } } } } } } } } } } } } } #line 320 return (status); } }
int FloppyPnp(int DeviceObject , int Irp ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int Irp__IoStatus__Information ; int Irp__IoStatus__Status ; int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int disketteExtension__IsRemoved = __VERIFIER_nondet_int() ; int disketteExtension__IsStarted = __VERIFIER_nondet_int() ; int disketteExtension__TargetObject = __VERIFIER_nondet_int() ; int disketteExtension__HoldNewRequests ; int disketteExtension__FloppyThread = __VERIFIER_nondet_int() ; int disketteExtension__InterfaceString__Buffer = __VERIFIER_nondet_int() ; int disketteExtension__InterfaceString = __VERIFIER_nondet_int() ; int disketteExtension__ArcName__Length = __VERIFIER_nondet_int() ; int disketteExtension__ArcName = __VERIFIER_nondet_int() ; int irpSp__MinorFunction = __VERIFIER_nondet_int() ; int IoGetConfigurationInformation__FloppyCount = __VERIFIER_nondet_int() ; int irpSp ; int disketteExtension ; int ntStatus ; int doneEvent = __VERIFIER_nondet_int() ; int irpSp___0 ; int nextIrpSp ; int nextIrpSp__Control ; int irpSp___1 ; int irpSp__Context ; int irpSp__Control ; long __cil_tmp29 ; long __cil_tmp30 ; { ntStatus = 0; PagingReferenceCount ++; if (PagingReferenceCount == 1) { } disketteExtension = DeviceObject__DeviceExtension; irpSp = Irp__Tail__Overlay__CurrentStackLocation; if (disketteExtension__IsRemoved) { { Irp__IoStatus__Information = 0; Irp__IoStatus__Status = -1073741738; myStatus = -1073741738; IofCompleteRequest(Irp, 0); } return (-1073741738); } if (irpSp__MinorFunction == 0) { goto switch_0_0; } else { if (irpSp__MinorFunction == 5) { goto switch_0_5; } else { if (irpSp__MinorFunction == 1) { goto switch_0_5; } else { if (irpSp__MinorFunction == 6) { goto switch_0_6; } else { if (irpSp__MinorFunction == 3) { goto switch_0_6; } else { if (irpSp__MinorFunction == 4) { goto switch_0_4; } else { if (irpSp__MinorFunction == 2) { goto switch_0_2; } else { goto switch_0_default; if (0) { switch_0_0: { ntStatus = FloppyStartDevice(DeviceObject, Irp); } goto switch_0_break; switch_0_5: if (irpSp__MinorFunction == 5) { } if (! disketteExtension__IsStarted) { if (s == NP) { s = SKIP1; } else { { errorFn(); } } { Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } return (ntStatus); } { disketteExtension__HoldNewRequests = 1; ntStatus = FlQueueIrpToThread(Irp, disketteExtension); } { __cil_tmp29 = (long )ntStatus; if (__cil_tmp29 == 259L) { { KeWaitForSingleObject(disketteExtension__FloppyThread, Executive, KernelMode, 0, 0); } if (disketteExtension__FloppyThread != 0) { } disketteExtension__FloppyThread = 0; Irp__IoStatus__Status = 0; myStatus = 0; if (s == NP) { s = SKIP1; } else { { errorFn(); } } { Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } } else { { ntStatus = -1073741823; Irp__IoStatus__Status = ntStatus; myStatus = ntStatus; Irp__IoStatus__Information = 0; IofCompleteRequest(Irp, 0); } } } goto switch_0_break; switch_0_6: if (irpSp__MinorFunction == 6) { } if (! disketteExtension__IsStarted) { Irp__IoStatus__Status = 0; myStatus = 0; if (s == NP) { s = SKIP1; } else { { errorFn(); } } { Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } } else { Irp__IoStatus__Status = 0; myStatus = 0; irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation; nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; nextIrpSp__Control = 0; if (s != NP) { { errorFn(); } } else { if (compRegistered != 0) { { errorFn(); } } else { compRegistered = 1; } } { irpSp___1 = Irp__Tail__Overlay__CurrentStackLocation - 1; irpSp__Context = doneEvent; irpSp__Control = 224; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } { __cil_tmp30 = (long )ntStatus; if (__cil_tmp30 == 259L) { { KeWaitForSingleObject(doneEvent, Executive, KernelMode, 0, 0); ntStatus = myStatus; } } } { disketteExtension__HoldNewRequests = 0; Irp__IoStatus__Status = ntStatus; myStatus = ntStatus; Irp__IoStatus__Information = 0; IofCompleteRequest(Irp, 0); } } goto switch_0_break; switch_0_4: disketteExtension__IsStarted = 0; Irp__IoStatus__Status = 0; myStatus = 0; if (s == NP) { s = SKIP1; } else { { errorFn(); } } { Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } goto switch_0_break; switch_0_2: disketteExtension__HoldNewRequests = 0; disketteExtension__IsStarted = 0; disketteExtension__IsRemoved = 1; if (s == NP) { s = SKIP1; } else { { errorFn(); } } { Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; Irp__IoStatus__Status = 0; myStatus = 0; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } if (disketteExtension__InterfaceString__Buffer != 0) { { IoSetDeviceInterfaceState(disketteExtension__InterfaceString, 0); } } if (disketteExtension__ArcName__Length != 0) { { IoDeleteSymbolicLink(disketteExtension__ArcName); } } IoGetConfigurationInformation__FloppyCount --; goto switch_0_break; switch_0_default: ; if (s == NP) { s = SKIP1; } else { { errorFn(); } } { Irp__CurrentLocation ++; Irp__Tail__Overlay__CurrentStackLocation ++; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } } else { switch_0_break: ; } } } } } } } } PagingReferenceCount --; if (PagingReferenceCount == 0) { } return (ntStatus); } }
int DiskPerfForwardIrpSynchronous(int DeviceObject , int Irp ) { int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int deviceExtension ; int event = __VERIFIER_nondet_int() ; int status ; int nextIrpSp__Control ; int irpSp ; int nextIrpSp ; int irpSp__Context ; int irpSp__Control ; int irpSp___0 ; long __cil_tmp15 ; { #line 255 deviceExtension = DeviceObject__DeviceExtension; #line 256 irpSp = Irp__Tail__Overlay__CurrentStackLocation; #line 257 nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 258 nextIrpSp__Control = 0; #line 259 if (s != NP) { { #line 261 errorFn(); } } else { #line 264 if (compRegistered != 0) { { #line 266 errorFn(); } } else { #line 269 compRegistered = 1; #line 270 routine = 0; } } { #line 274 irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 275 irpSp__Context = event; #line 276 irpSp__Control = 224; #line 280 status = IofCallDriver(deviceExtension__TargetDeviceObject, Irp); } { #line 282 __cil_tmp15 = (long )status; #line 282 if (__cil_tmp15 == 259L) { { #line 284 KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); #line 285 status = myStatus; } } } #line 290 return (status); } }
int DiskPerfRegisterDevice(int DeviceObject ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int sizeof__number = __VERIFIER_nondet_int() ; int ioStatus__Status = __VERIFIER_nondet_int() ; int sizeof__VOLUME_NUMBER = __VERIFIER_nondet_int() ; int volumeNumber__VolumeManagerName__0 = __VERIFIER_nondet_int() ; int status ; int ioStatus = __VERIFIER_nondet_int() ; int event = __VERIFIER_nondet_int() ; int deviceExtension ; int irp ; int number = __VERIFIER_nondet_int() ; int registrationFlag ; int sizeof__MOUNTDEV_NAME = __VERIFIER_nondet_int() ; int output__NameLength = __VERIFIER_nondet_int() ; int outputSize ; int output = __VERIFIER_nondet_int() ; int volumeNumber = __VERIFIER_nondet_int() ; int __cil_tmp20 ; int __cil_tmp21 ; int __cil_tmp22 ; long __cil_tmp23 ; int __cil_tmp24 ; int __cil_tmp25 ; int __cil_tmp26 ; long __cil_tmp27 ; unsigned long __cil_tmp28 ; int __cil_tmp29 ; int __cil_tmp30 ; int __cil_tmp31 ; long __cil_tmp32 ; int __cil_tmp33 ; int __cil_tmp34 ; int __cil_tmp35 ; int __cil_tmp36 ; long __cil_tmp37 ; int __cil_tmp38 ; int __cil_tmp39 ; { { registrationFlag = 0; deviceExtension = DeviceObject__DeviceExtension; __cil_tmp20 = 4224; __cil_tmp21 = 2949120; __cil_tmp22 = 2953344; irp = IoBuildDeviceIoControlRequest(__cil_tmp22, deviceExtension__TargetDeviceObject, 0, 0, number, sizeof__number, 0, event, ioStatus); } if (! irp) { return (-1073741670); } { status = IofCallDriver(deviceExtension__TargetDeviceObject, irp); } { __cil_tmp23 = (long )status; if (__cil_tmp23 == 259L) { { KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); status = ioStatus__Status; } } } if (status < 0) { outputSize = sizeof__MOUNTDEV_NAME; if (! output) { return (-1073741670); } { __cil_tmp24 = 8; __cil_tmp25 = 5046272; __cil_tmp26 = 5046280; irp = IoBuildDeviceIoControlRequest(__cil_tmp26, deviceExtension__TargetDeviceObject, 0, 0, output, outputSize, 0, event, ioStatus); } if (! irp) { return (-1073741670); } { status = IofCallDriver(deviceExtension__TargetDeviceObject, irp); } { __cil_tmp27 = (long )status; if (__cil_tmp27 == 259L) { { KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); status = ioStatus__Status; } } } { __cil_tmp28 = (unsigned long )status; if (__cil_tmp28 == -2147483643) { outputSize = sizeof__MOUNTDEV_NAME + output__NameLength; if (! output) { return (-1073741670); } { __cil_tmp29 = 8; __cil_tmp30 = 5046272; __cil_tmp31 = 5046280; irp = IoBuildDeviceIoControlRequest(__cil_tmp31, deviceExtension__TargetDeviceObject, 0, 0, output, outputSize, 0, event, ioStatus); } if (! irp) { return (-1073741670); } { status = IofCallDriver(deviceExtension__TargetDeviceObject, irp); } { __cil_tmp32 = (long )status; if (__cil_tmp32 == 259L) { { KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); status = ioStatus__Status; } } } } } { if (status < 0) { return (status); } } { __cil_tmp34 = 28; __cil_tmp35 = 5636096; __cil_tmp36 = 5636124; irp = IoBuildDeviceIoControlRequest(__cil_tmp36, deviceExtension__TargetDeviceObject, 0, 0, volumeNumber, sizeof__VOLUME_NUMBER, 0, event, ioStatus); } if (! irp) { return (-1073741670); } { status = IofCallDriver(deviceExtension__TargetDeviceObject, irp); } { __cil_tmp37 = (long )status; if (__cil_tmp37 == 259L) { { KeWaitForSingleObject(event, Executive, KernelMode, 0, 0); status = ioStatus__Status; } } } { if (status < 0) { goto _L; } else { if (volumeNumber__VolumeManagerName__0 == 0) { _L: if (status >= 0) { } } } } } { if (status < 0) { } } return (status); } }
int DiskPerfDeviceControl(int DeviceObject , int Irp ) { int Irp__CurrentLocation = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int deviceExtension__TargetDeviceObject = __VERIFIER_nondet_int() ; int currentIrpStack__Parameters__DeviceIoControl__IoControlCode = __VERIFIER_nondet_int() ; int currentIrpStack__Parameters__DeviceIoControl__OutputBufferLength = __VERIFIER_nondet_int() ; int sizeof__DISK_PERFORMANCE = __VERIFIER_nondet_int() ; int Irp__IoStatus__Information ; int deviceExtension__DiskCounters = __VERIFIER_nondet_int() ; int Irp__AssociatedIrp__SystemBuffer = __VERIFIER_nondet_int() ; int deviceExtension__Processors = __VERIFIER_nondet_int() ; int totalCounters__QueueDepth ; int deviceExtension__QueueDepth = __VERIFIER_nondet_int() ; int Irp__IoStatus__Status ; int deviceExtension ; int currentIrpStack ; int status ; int i ; int totalCounters ; int diskCounters ; int tmp ; int __cil_tmp24 ; int __cil_tmp25 ; int __cil_tmp26 ; { #line 390 deviceExtension = DeviceObject__DeviceExtension; #line 391 currentIrpStack = Irp__Tail__Overlay__CurrentStackLocation; { #line 392 __cil_tmp24 = 32; #line 392 __cil_tmp25 = 458752; #line 392 __cil_tmp26 = 458784; #line 392 if (currentIrpStack__Parameters__DeviceIoControl__IoControlCode == __cil_tmp26) { #line 393 if (currentIrpStack__Parameters__DeviceIoControl__OutputBufferLength < sizeof__DISK_PERFORMANCE) { #line 394 status = -1073741789; #line 395 Irp__IoStatus__Information = 0; } else { #line 397 diskCounters = deviceExtension__DiskCounters; #line 398 if (diskCounters == 0) { { #line 400 Irp__IoStatus__Status = -1073741823; #line 401 myStatus = -1073741823; #line 402 IofCompleteRequest(Irp, 0); } #line 404 return (-1073741823); } #line 408 totalCounters = Irp__AssociatedIrp__SystemBuffer; #line 409 i = 0; { #line 411 while (1) { while_0_continue: /* CIL Label */ ; #line 413 if (i >= deviceExtension__Processors) { goto while_1_break; } #line 418 i ++; } while_0_break: /* CIL Label */ ; } while_1_break: #line 422 totalCounters__QueueDepth = deviceExtension__QueueDepth; #line 423 status = 0; #line 424 Irp__IoStatus__Information = sizeof__DISK_PERFORMANCE; } { #line 427 Irp__IoStatus__Status = status; #line 428 myStatus = status; #line 429 IofCompleteRequest(Irp, 0); } #line 431 return (status); } else { { #line 434 Irp__CurrentLocation ++; #line 435 Irp__Tail__Overlay__CurrentStackLocation ++; #line 436 tmp = IofCallDriver(deviceExtension__TargetDeviceObject, Irp); } #line 438 return (tmp); } } } }