This commit is contained in:
Bill Zissimopoulos 2016-01-03 14:56:06 -08:00
parent 4429955506
commit 5e09c1e045
2 changed files with 16 additions and 7 deletions

View File

@ -68,6 +68,13 @@ VOID FspFileSystemSetDispatcher(FSP_FILE_SYSTEM *FileSystem,
FileSystem->EnterOperation = EnterOperation; FileSystem->EnterOperation = EnterOperation;
FileSystem->LeaveOperation = LeaveOperation; FileSystem->LeaveOperation = LeaveOperation;
} }
static inline
VOID FspFileSystemSetOperation(FSP_FILE_SYSTEM *FileSystem,
ULONG Index,
FSP_FILE_SYSTEM_OPERATION *Operation)
{
FileSystem->Operations[Index] = Operation;
}
static inline static inline
VOID FspFileSystemGetDispatcherResult(FSP_FILE_SYSTEM *FileSystem, VOID FspFileSystemGetDispatcherResult(FSP_FILE_SYSTEM *FileSystem,
@ -101,9 +108,9 @@ VOID FspFileSystemLeaveOperation(FSP_FILE_SYSTEM *FileSystem,
FileSystem->LeaveOperation(FileSystem, Request); FileSystem->LeaveOperation(FileSystem, Request);
} }
FSP_API NTSTATUS FspSendResponse(FSP_FILE_SYSTEM *FileSystem, FSP_API NTSTATUS FspFileSystemSendResponse(FSP_FILE_SYSTEM *FileSystem,
FSP_FSCTL_TRANSACT_RSP *Response); FSP_FSCTL_TRANSACT_RSP *Response);
FSP_API NTSTATUS FspSendResponseWithStatus(FSP_FILE_SYSTEM *FileSystem, FSP_API NTSTATUS FspFileSystemSendResponseWithStatus(FSP_FILE_SYSTEM *FileSystem,
FSP_FSCTL_TRANSACT_REQ *Request, NTSTATUS Result); FSP_FSCTL_TRANSACT_REQ *Request, NTSTATUS Result);
/* /*

View File

@ -103,7 +103,8 @@ FSP_API VOID FspFileSystemDirectDispatcher(FSP_FILE_SYSTEM *FileSystem,
NTSTATUS DispatcherResult; NTSTATUS DispatcherResult;
if (FspFsctlTransactKindCount <= Request->Kind || 0 == FileSystem->Operations[Request->Kind]) if (FspFsctlTransactKindCount <= Request->Kind || 0 == FileSystem->Operations[Request->Kind])
DispatcherResult = FspSendResponseWithStatus(FileSystem, Request, STATUS_INVALID_DEVICE_REQUEST); DispatcherResult = FspFileSystemSendResponseWithStatus(FileSystem,
Request, STATUS_INVALID_DEVICE_REQUEST);
else else
{ {
FspFileSystemEnterOperation(FileSystem, Request); FspFileSystemEnterOperation(FileSystem, Request);
@ -137,7 +138,8 @@ FSP_API VOID FspFileSystemPoolDispatcher(FSP_FILE_SYSTEM *FileSystem,
NTSTATUS DispatcherResult; NTSTATUS DispatcherResult;
if (FspFsctlTransactKindCount <= Request->Kind || 0 == FileSystem->Operations[Request->Kind]) if (FspFsctlTransactKindCount <= Request->Kind || 0 == FileSystem->Operations[Request->Kind])
DispatcherResult = FspSendResponseWithStatus(FileSystem, Request, STATUS_INVALID_DEVICE_REQUEST); DispatcherResult = FspFileSystemSendResponseWithStatus(FileSystem,
Request, STATUS_INVALID_DEVICE_REQUEST);
else else
{ {
FSP_DISPATCHER_WORK_ITEM *WorkItem = MemAlloc(sizeof *WorkItem + Request->Size); FSP_DISPATCHER_WORK_ITEM *WorkItem = MemAlloc(sizeof *WorkItem + Request->Size);
@ -161,13 +163,13 @@ FSP_API VOID FspFileSystemPoolDispatcher(FSP_FILE_SYSTEM *FileSystem,
FspFileSystemSetDispatcherResult(FileSystem, DispatcherResult); FspFileSystemSetDispatcherResult(FileSystem, DispatcherResult);
} }
FSP_API NTSTATUS FspSendResponse(FSP_FILE_SYSTEM *FileSystem, FSP_API NTSTATUS FspFileSystemSendResponse(FSP_FILE_SYSTEM *FileSystem,
FSP_FSCTL_TRANSACT_RSP *Response) FSP_FSCTL_TRANSACT_RSP *Response)
{ {
return FspFsctlTransact(FileSystem->VolumeHandle, Response, Response->Size, 0, 0); return FspFsctlTransact(FileSystem->VolumeHandle, Response, Response->Size, 0, 0);
} }
FSP_API NTSTATUS FspSendResponseWithStatus(FSP_FILE_SYSTEM *FileSystem, FSP_API NTSTATUS FspFileSystemSendResponseWithStatus(FSP_FILE_SYSTEM *FileSystem,
FSP_FSCTL_TRANSACT_REQ *Request, NTSTATUS Result) FSP_FSCTL_TRANSACT_REQ *Request, NTSTATUS Result)
{ {
FSP_FSCTL_TRANSACT_RSP Response; FSP_FSCTL_TRANSACT_RSP Response;
@ -176,5 +178,5 @@ FSP_API NTSTATUS FspSendResponseWithStatus(FSP_FILE_SYSTEM *FileSystem,
Response.Kind = Request->Kind; Response.Kind = Request->Kind;
Response.Hint = Request->Hint; Response.Hint = Request->Hint;
Response.IoStatus.Status = Result; Response.IoStatus.Status = Result;
return FspSendResponse(FileSystem, &Response); return FspFileSystemSendResponse(FileSystem, &Response);
} }