Lines Matching defs:pIrp

31 static NTSTATUS vboxUsbPwrMnDefault(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
34 PoStartNextPowerIrp(pIrp);
35 IoSkipCurrentIrpStackLocation(pIrp);
36 Status = PoCallDriver(pDevExt->pLowerDO, pIrp);
42 static NTSTATUS vboxUsbPwrMnPowerSequence(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
45 return vboxUsbPwrMnDefault(pDevExt, pIrp);
51 PIRP pIrp;
62 PIRP pIrp = pDevCtx->pIrp;
63 pIrp->IoStatus.Status = pIoStatus->Status;
64 pIrp->IoStatus.Information = 0;
66 PoStartNextPowerIrp(pIrp);
67 IoCompleteRequest(pIrp, IO_NO_INCREMENT);
73 static NTSTATUS vboxUsbPwrIoRequestDev(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
75 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
86 pDevCtx->pIrp = pIrp;
99 PoStartNextPowerIrp(pIrp);
100 pIrp->IoStatus.Status = Status;
101 pIrp->IoStatus.Information = 0;
104 /* the "real" Status is stored in pIrp->IoStatus.Status,
109 static NTSTATUS vboxUsbPwrIoPostSysCompletion(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp, IN PVOID pvContext)
112 NTSTATUS Status = pIrp->IoStatus.Status;
116 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
130 return vboxUsbPwrIoRequestDev(pDevExt, pIrp);
133 PoStartNextPowerIrp(pIrp);
138 static NTSTATUS vboxUsbPwrIoPostSys(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
140 IoMarkIrpPending(pIrp);
141 IoCopyCurrentIrpStackLocationToNext(pIrp);
142 IoSetCompletionRoutine(pIrp, vboxUsbPwrIoPostSysCompletion, pDevExt, TRUE, TRUE, TRUE);
143 NTSTATUS Status = PoCallDriver(pDevExt->pLowerDO, pIrp);
148 static NTSTATUS vboxUsbPwrQueryPowerSys(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
150 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
153 return vboxUsbPwrIoPostSys(pDevExt, pIrp);
156 static NTSTATUS vboxUsbPwrIoPostDevCompletion(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp, IN PVOID pvContext)
160 if (pIrp->PendingReturned)
162 IoMarkIrpPending(pIrp);
165 NTSTATUS Status = pIrp->IoStatus.Status;
169 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
185 PoStartNextPowerIrp(pIrp);
190 static NTSTATUS vboxUsbPwrIoPostDev(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
192 IoMarkIrpPending(pIrp);
193 IoCopyCurrentIrpStackLocationToNext(pIrp);
194 IoSetCompletionRoutine(pIrp, vboxUsbPwrIoPostDevCompletion, pDevExt, TRUE, TRUE, TRUE);
195 NTSTATUS Status = PoCallDriver(pDevExt->pLowerDO, pIrp);
203 PIRP pIrp;
210 PIRP pIrp = pCtx->pIrp;
212 vboxUsbPwrIoPostDev(pDevExt, pIrp);
218 static NTSTATUS vboxUsbPwrIoWaitCompletionAndPostAsync(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
230 pCtx->pIrp = pIrp;
231 IoMarkIrpPending(pIrp);
240 static NTSTATUS vboxUsbPwrQueryPowerDev(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
242 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
248 Status = vboxUsbPwrIoWaitCompletionAndPostAsync(pDevExt, pIrp);
254 pIrp->IoStatus.Status = Status;
255 pIrp->IoStatus.Information = 0;
257 PoStartNextPowerIrp(pIrp);
261 IoSkipCurrentIrpStackLocation(pIrp);
262 Status = PoCallDriver(pDevExt->pLowerDO, pIrp);
266 IoCompleteRequest(pIrp, IO_NO_INCREMENT);
274 static NTSTATUS vboxUsbPwrMnQueryPower(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
276 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
282 return vboxUsbPwrQueryPowerSys(pDevExt, pIrp);
286 return vboxUsbPwrQueryPowerDev(pDevExt, pIrp);
291 return vboxUsbPwrMnDefault(pDevExt, pIrp);
295 return vboxUsbPwrMnDefault(pDevExt, pIrp);
298 static NTSTATUS vboxUsbPwrSetPowerSys(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
300 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
303 return vboxUsbPwrIoPostSys(pDevExt, pIrp);
306 static NTSTATUS vboxUsbPwrSetPowerDev(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
308 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
315 Status = vboxUsbPwrIoWaitCompletionAndPostAsync(pDevExt, pIrp);
321 PoStartNextPowerIrp(pIrp);
325 IoCopyCurrentIrpStackLocationToNext(pIrp);
326 IoSetCompletionRoutine(pIrp, vboxUsbPwrIoPostDevCompletion, pDevExt, TRUE, TRUE, TRUE);
327 Status = PoCallDriver(pDevExt->pLowerDO, pIrp);
331 pIrp->IoStatus.Status = Status;
332 pIrp->IoStatus.Information = 0;
334 IoCompleteRequest(pIrp, IO_NO_INCREMENT);
342 static NTSTATUS vboxUsbPwrMnSetPower(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
344 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
350 return vboxUsbPwrSetPowerSys(pDevExt, pIrp);
354 return vboxUsbPwrSetPowerDev(pDevExt, pIrp);
359 return vboxUsbPwrMnDefault(pDevExt, pIrp);
363 return vboxUsbPwrMnDefault(pDevExt, pIrp);
366 static NTSTATUS vboxUsbPwrMnWaitWake(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
369 return vboxUsbPwrMnDefault(pDevExt, pIrp);
373 static NTSTATUS vboxUsbPwrDispatch(IN PVBOXUSBDEV_EXT pDevExt, IN PIRP pIrp)
375 PIO_STACK_LOCATION pSl = IoGetCurrentIrpStackLocation(pIrp);
381 return vboxUsbPwrMnPowerSequence(pDevExt, pIrp);
385 return vboxUsbPwrMnQueryPower(pDevExt, pIrp);
389 return vboxUsbPwrMnSetPower(pDevExt, pIrp);
393 return vboxUsbPwrMnWaitWake(pDevExt, pIrp);
398 return vboxUsbPwrMnDefault(pDevExt, pIrp);
403 DECLHIDDEN(NTSTATUS) vboxUsbDispatchPower(IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp)
411 PoStartNextPowerIrp(pIrp);
413 pIrp->IoStatus.Status = STATUS_DELETE_PENDING;
414 pIrp->IoStatus.Information = 0;
416 IoCompleteRequest(pIrp, IO_NO_INCREMENT);
424 PoStartNextPowerIrp(pIrp);
425 IoSkipCurrentIrpStackLocation(pIrp);
429 return PoCallDriver(pDevExt->pLowerDO, pIrp);
433 return vboxUsbPwrDispatch(pDevExt, pIrp);