mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-25 09:52:23 -05:00
40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
/**
|
|
* @file dll/close.c
|
|
*
|
|
* @copyright 2015 Bill Zissimopoulos
|
|
*/
|
|
|
|
#include <dll/library.h>
|
|
|
|
FSP_API NTSTATUS FspFileSystemOpQueryInformation(FSP_FILE_SYSTEM *FileSystem,
|
|
FSP_FSCTL_TRANSACT_REQ *Request)
|
|
{
|
|
NTSTATUS Result;
|
|
FSP_FSCTL_FILE_INFO FileInfo;
|
|
|
|
if (0 == FileSystem->Interface->GetInformation)
|
|
return FspFileSystemSendResponseWithStatus(FileSystem, Request, STATUS_INVALID_DEVICE_REQUEST);
|
|
|
|
Result = FileSystem->Interface->GetInformation(FileSystem, Request,
|
|
(PVOID)Request->Req.Close.UserContext, &FileInfo);
|
|
if (!NT_SUCCESS(Result))
|
|
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
|
|
|
return FspFileSystemSendQueryInformationResponse(FileSystem, Request, &FileInfo);
|
|
}
|
|
|
|
FSP_API NTSTATUS FspFileSystemSendQueryInformationResponse(FSP_FILE_SYSTEM *FileSystem,
|
|
FSP_FSCTL_TRANSACT_REQ *Request, const FSP_FSCTL_FILE_INFO *FileInfo)
|
|
{
|
|
FSP_FSCTL_TRANSACT_RSP Response;
|
|
|
|
memset(&Response, 0, sizeof Response);
|
|
Response.Size = sizeof Response;
|
|
Response.Kind = FspFsctlTransactCloseKind;
|
|
Response.Hint = Request->Hint;
|
|
Response.IoStatus.Status = STATUS_SUCCESS;
|
|
Response.IoStatus.Information = 0;
|
|
Response.Rsp.QueryInformation.FileInfo = *FileInfo;
|
|
return FspFileSystemSendResponse(FileSystem, &Response);
|
|
}
|