sys: request work item refactoring

This commit is contained in:
Bill Zissimopoulos 2016-11-08 16:37:49 -08:00
parent 1e93f0d10d
commit becfd2e1c5
2 changed files with 11 additions and 11 deletions

View File

@ -679,9 +679,9 @@ VOID FspMetaCacheInvalidateItem(FSP_META_CACHE *MetaCache, UINT64 ItemIndex);
#define FSP_FSCTL_TRANSACT_REQ_ALIGNMENT 16 #define FSP_FSCTL_TRANSACT_REQ_ALIGNMENT 16
enum enum
{ {
FspIopCreateRequestMustSucceed = 0x01, FspIopCreateRequestMustSucceedFlag = 0x01,
FspIopCreateRequestNonPaged = 0x02, FspIopCreateRequestNonPagedFlag = 0x02,
FspIopCreateRequestWorkItem = 0x04, FspIopCreateRequestWorkItemFlag = 0x04,
}; };
typedef VOID FSP_IOP_REQUEST_FINI(FSP_FSCTL_TRANSACT_REQ *Request, PVOID Context[4]); typedef VOID FSP_IOP_REQUEST_FINI(FSP_FSCTL_TRANSACT_REQ *Request, PVOID Context[4]);
typedef NTSTATUS FSP_IOP_REQUEST_WORK( typedef NTSTATUS FSP_IOP_REQUEST_WORK(
@ -742,13 +742,13 @@ VOID FspIrpDeleteRequest(PIRP Irp)
#define FspIopCreateRequest(I, F, E, P) \ #define FspIopCreateRequest(I, F, E, P) \
FspIopCreateRequestFunnel(I, F, E, 0, 0, P) FspIopCreateRequestFunnel(I, F, E, 0, 0, P)
#define FspIopCreateRequestMustSucceed(I, F, E, P)\ #define FspIopCreateRequestMustSucceed(I, F, E, P)\
FspIopCreateRequestFunnel(I, F, E, 0, FspIopCreateRequestMustSucceed, P) FspIopCreateRequestFunnel(I, F, E, 0, FspIopCreateRequestMustSucceedFlag, P)
#define FspIopCreateRequestEx(I, F, E, RF, P)\ #define FspIopCreateRequestEx(I, F, E, RF, P)\
FspIopCreateRequestFunnel(I, F, E, RF, 0, P) FspIopCreateRequestFunnel(I, F, E, RF, 0, P)
#define FspIopCreateRequestMustSucceedEx(I, F, E, RF, P)\ #define FspIopCreateRequestMustSucceedEx(I, F, E, RF, P)\
FspIopCreateRequestFunnel(I, F, E, RF, FspIopCreateRequestMustSucceed, P) FspIopCreateRequestFunnel(I, F, E, RF, FspIopCreateRequestMustSucceedFlag, P)
#define FspIopCreateRequestAndWorkItem(I, E, RF, P)\ #define FspIopCreateRequestAndWorkItem(I, E, RF, P)\
FspIopCreateRequestFunnel(I, 0, E, RF, FspIopCreateRequestWorkItem, P) FspIopCreateRequestFunnel(I, 0, E, RF, FspIopCreateRequestWorkItemFlag, P)
#define FspIopRequestContext(Request, I)\ #define FspIopRequestContext(Request, I)\
(*FspIopRequestContextAddress(Request, I)) (*FspIopRequestContextAddress(Request, I))
#define FspIopPostWorkRequest(D, R) FspIopPostWorkRequestFunnel(D, R, FALSE) #define FspIopPostWorkRequest(D, R) FspIopPostWorkRequestFunnel(D, R, FALSE)

View File

@ -74,14 +74,14 @@ NTSTATUS FspIopCreateRequestFunnel(
if (FSP_FSCTL_TRANSACT_REQ_SIZEMAX < sizeof *Request + ExtraSize) if (FSP_FSCTL_TRANSACT_REQ_SIZEMAX < sizeof *Request + ExtraSize)
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
if (FlagOn(Flags, FspIopCreateRequestMustSucceed)) if (FlagOn(Flags, FspIopCreateRequestMustSucceedFlag))
{ {
RequestHeader = FspAllocatePoolMustSucceed( RequestHeader = FspAllocatePoolMustSucceed(
FlagOn(Flags, FspIopCreateRequestNonPaged) ? NonPagedPool : PagedPool, FlagOn(Flags, FspIopCreateRequestNonPagedFlag) ? NonPagedPool : PagedPool,
sizeof *RequestHeader + sizeof *Request + ExtraSize + REQ_HEADER_ALIGN_OVERHEAD, sizeof *RequestHeader + sizeof *Request + ExtraSize + REQ_HEADER_ALIGN_OVERHEAD,
FSP_ALLOC_INTERNAL_TAG); FSP_ALLOC_INTERNAL_TAG);
if (FlagOn(Flags, FspIopCreateRequestWorkItem)) if (FlagOn(Flags, FspIopCreateRequestWorkItemFlag))
{ {
RequestWorkItem = FspAllocatePoolMustSucceed( RequestWorkItem = FspAllocatePoolMustSucceed(
NonPagedPool, sizeof *RequestWorkItem, FSP_ALLOC_INTERNAL_TAG); NonPagedPool, sizeof *RequestWorkItem, FSP_ALLOC_INTERNAL_TAG);
@ -92,13 +92,13 @@ NTSTATUS FspIopCreateRequestFunnel(
else else
{ {
RequestHeader = ExAllocatePoolWithTag( RequestHeader = ExAllocatePoolWithTag(
FlagOn(Flags, FspIopCreateRequestNonPaged) ? NonPagedPool : PagedPool, FlagOn(Flags, FspIopCreateRequestNonPagedFlag) ? NonPagedPool : PagedPool,
sizeof *RequestHeader + sizeof *Request + ExtraSize + REQ_HEADER_ALIGN_OVERHEAD, sizeof *RequestHeader + sizeof *Request + ExtraSize + REQ_HEADER_ALIGN_OVERHEAD,
FSP_ALLOC_INTERNAL_TAG); FSP_ALLOC_INTERNAL_TAG);
if (0 == RequestHeader) if (0 == RequestHeader)
return STATUS_INSUFFICIENT_RESOURCES; return STATUS_INSUFFICIENT_RESOURCES;
if (FlagOn(Flags, FspIopCreateRequestWorkItem)) if (FlagOn(Flags, FspIopCreateRequestWorkItemFlag))
{ {
RequestWorkItem = ExAllocatePoolWithTag( RequestWorkItem = ExAllocatePoolWithTag(
NonPagedPool, sizeof *RequestWorkItem, FSP_ALLOC_INTERNAL_TAG); NonPagedPool, sizeof *RequestWorkItem, FSP_ALLOC_INTERNAL_TAG);