mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
sys: ioq
This commit is contained in:
parent
175ba3205a
commit
f40d03c92e
@ -157,8 +157,8 @@ VOID FspIoqInitialize(FSP_IOQ *Ioq);
|
|||||||
VOID FspIoqEnable(FSP_IOQ *Ioq, int Delta);
|
VOID FspIoqEnable(FSP_IOQ *Ioq, int Delta);
|
||||||
BOOLEAN FspIoqPostIrp(FSP_IOQ *Ioq, PIRP Irp);
|
BOOLEAN FspIoqPostIrp(FSP_IOQ *Ioq, PIRP Irp);
|
||||||
PIRP FspIoqNextPendingIrp(FSP_IOQ *Ioq);
|
PIRP FspIoqNextPendingIrp(FSP_IOQ *Ioq);
|
||||||
BOOLEAN FspIoqProcessIrp(FSP_IOQ *Ioq, PIRP Irp);
|
BOOLEAN FspIoqStartProcessingIrp(FSP_IOQ *Ioq, PIRP Irp);
|
||||||
PIRP FspIoqRemoveProcessIrp(FSP_IOQ *Ioq, UINT_PTR IrpHint);
|
PIRP FspIoqEndProcessingIrp(FSP_IOQ *Ioq, UINT_PTR IrpHint);
|
||||||
VOID FspIoqCancelAll(FSP_IOQ *Ioq);
|
VOID FspIoqCancelAll(FSP_IOQ *Ioq);
|
||||||
|
|
||||||
/* device extensions */
|
/* device extensions */
|
||||||
|
@ -23,13 +23,13 @@
|
|||||||
*
|
*
|
||||||
* State diagram:
|
* State diagram:
|
||||||
* +--------------------+
|
* +--------------------+
|
||||||
* | | | ProcessIrp
|
* | | | StartProcessingIrp
|
||||||
* v | v
|
* v | v
|
||||||
* +------------+ | +------------+
|
* +------------+ | +------------+
|
||||||
* | MJ | | | Processing |
|
* | MJ | | | Processing |
|
||||||
* +------------+ | +------------+
|
* +------------+ | +------------+
|
||||||
* | | |
|
* | | |
|
||||||
* | PostIrp | | RemoveProcessIrp
|
* | PostIrp | | EndProcessingIrp
|
||||||
* v | v
|
* v | v
|
||||||
* +------------+ | +------------+
|
* +------------+ | +------------+
|
||||||
* | Pending | | | TRANSACT |
|
* | Pending | | | TRANSACT |
|
||||||
@ -189,12 +189,12 @@ PIRP FspIoqNextPendingIrp(FSP_IOQ *Ioq)
|
|||||||
return IoCsqRemoveNextIrp(&Ioq->PendingIoCsq, (PVOID)1);
|
return IoCsqRemoveNextIrp(&Ioq->PendingIoCsq, (PVOID)1);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN FspIoqProcessIrp(FSP_IOQ *Ioq, PIRP Irp)
|
BOOLEAN FspIoqStartProcessingIrp(FSP_IOQ *Ioq, PIRP Irp)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS == IoCsqInsertIrpEx(&Ioq->ProcessIoCsq, Irp, 0, 0);
|
return STATUS_SUCCESS == IoCsqInsertIrpEx(&Ioq->ProcessIoCsq, Irp, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
PIRP FspIoqRemoveProcessIrp(FSP_IOQ *Ioq, UINT_PTR IrpHint)
|
PIRP FspIoqEndProcessingIrp(FSP_IOQ *Ioq, UINT_PTR IrpHint)
|
||||||
{
|
{
|
||||||
return IoCsqRemoveNextIrp(&Ioq->PendingIoCsq, (PVOID)IrpHint);
|
return IoCsqRemoveNextIrp(&Ioq->PendingIoCsq, (PVOID)IrpHint);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user