mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-24 09:23:37 -05:00
sys: FspIopDispatchRetryComplete()
This commit is contained in:
parent
af5745d5fc
commit
79a6539caa
@ -714,7 +714,7 @@ VOID FspFsvolCreateComplete(
|
|||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FspFsvolCreateRetryComplete(
|
NTSTATUS FspFsvolCreateRetryComplete(
|
||||||
PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request)
|
PIRP Irp)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
PAGED_CODE();
|
||||||
|
|
||||||
|
@ -228,7 +228,7 @@ typedef VOID FSP_IOCMPL_DISPATCH(
|
|||||||
_IRQL_requires_max_(APC_LEVEL)
|
_IRQL_requires_max_(APC_LEVEL)
|
||||||
_IRQL_requires_same_
|
_IRQL_requires_same_
|
||||||
typedef NTSTATUS FSP_IORETR_DISPATCH(
|
typedef NTSTATUS FSP_IORETR_DISPATCH(
|
||||||
_Inout_ PIRP Irp, _Inout_ FSP_FSCTL_TRANSACT_REQ *Request);
|
_Inout_ PIRP Irp);
|
||||||
FSP_IOCMPL_DISPATCH FspFsvolCleanupComplete;
|
FSP_IOCMPL_DISPATCH FspFsvolCleanupComplete;
|
||||||
FSP_IOCMPL_DISPATCH FspFsvolCloseComplete;
|
FSP_IOCMPL_DISPATCH FspFsvolCloseComplete;
|
||||||
FSP_IOPREP_DISPATCH FspFsvolCreatePrepare;
|
FSP_IOPREP_DISPATCH FspFsvolCreatePrepare;
|
||||||
@ -423,7 +423,7 @@ VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceDereference);
|
|||||||
VOID FspIopCompleteCanceledIrp(PIRP Irp);
|
VOID FspIopCompleteCanceledIrp(PIRP Irp);
|
||||||
NTSTATUS FspIopDispatchPrepare(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request);
|
NTSTATUS FspIopDispatchPrepare(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request);
|
||||||
VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response);
|
VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response);
|
||||||
NTSTATUS FspIopDispatchRetryComplete(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request);
|
NTSTATUS FspIopDispatchRetryComplete(PIRP Irp);
|
||||||
|
|
||||||
/* device management */
|
/* device management */
|
||||||
#define FSP_DEVICE_VOLUME_NAME_LENMAX (FSP_FSCTL_VOLUME_NAME_SIZEMAX - sizeof(WCHAR))
|
#define FSP_DEVICE_VOLUME_NAME_LENMAX (FSP_FSCTL_VOLUME_NAME_SIZEMAX - sizeof(WCHAR))
|
||||||
|
@ -19,7 +19,7 @@ VOID FspIopCompleteIrpEx(PIRP Irp, NTSTATUS Result, BOOLEAN DeviceDereference);
|
|||||||
VOID FspIopCompleteCanceledIrp(PIRP Irp);
|
VOID FspIopCompleteCanceledIrp(PIRP Irp);
|
||||||
NTSTATUS FspIopDispatchPrepare(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request);
|
NTSTATUS FspIopDispatchPrepare(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request);
|
||||||
VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response);
|
VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response);
|
||||||
NTSTATUS FspIopDispatchRetryComplete(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request);
|
NTSTATUS FspIopDispatchRetryComplete(PIRP Irp);
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspIopCreateRequestFunnel)
|
#pragma alloc_text(PAGE, FspIopCreateRequestFunnel)
|
||||||
@ -270,17 +270,16 @@ VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response)
|
|||||||
FspIopCompleteFunction[IrpSp->MajorFunction](Irp, Response);
|
FspIopCompleteFunction[IrpSp->MajorFunction](Irp, Response);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FspIopDispatchRetryComplete(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request)
|
NTSTATUS FspIopDispatchRetryComplete(PIRP Irp)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
PAGED_CODE();
|
||||||
|
|
||||||
PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
|
PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
|
||||||
ASSERT(IRP_MJ_MAXIMUM_FUNCTION >= IrpSp->MajorFunction);
|
ASSERT(IRP_MJ_MAXIMUM_FUNCTION >= IrpSp->MajorFunction);
|
||||||
if (0 != FspIopRetryCompleteFunction[IrpSp->MajorFunction])
|
ASSERT(0 != FspIopRetryCompleteFunction[IrpSp->MajorFunction]);
|
||||||
return FspIopRetryCompleteFunction[IrpSp->MajorFunction](Irp, Request);
|
|
||||||
else
|
return FspIopRetryCompleteFunction[IrpSp->MajorFunction](Irp);
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FSP_IOPREP_DISPATCH *FspIopPrepareFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
|
FSP_IOPREP_DISPATCH *FspIopPrepareFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
|
||||||
|
@ -548,7 +548,7 @@ NTSTATUS FspVolumeTransact(
|
|||||||
if (0 == RetriedIrp)
|
if (0 == RetriedIrp)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Result = FspIopDispatchRetryComplete(RetriedIrp, FspIrpRequest(RetriedIrp));
|
Result = FspIopDispatchRetryComplete(RetriedIrp);
|
||||||
if (STATUS_PENDING == Result)
|
if (STATUS_PENDING == Result)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user