mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 08:23:05 -05:00
sys: silo: FspSiloPostInitialize
This commit is contained in:
parent
6c6dd8abcc
commit
a3765d6360
@ -150,6 +150,10 @@ NTSTATUS DriverEntry(
|
|||||||
goto exit;
|
goto exit;
|
||||||
InitDoneDevices = TRUE;
|
InitDoneDevices = TRUE;
|
||||||
|
|
||||||
|
Result = FspSiloPostInitialize();
|
||||||
|
if (!NT_SUCCESS(Result))
|
||||||
|
goto exit;
|
||||||
|
|
||||||
Result = STATUS_SUCCESS;
|
Result = STATUS_SUCCESS;
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
@ -754,6 +754,7 @@ NTSTATUS FspSiloGetGlobals(FSP_SILO_GLOBALS **PGlobals);
|
|||||||
VOID FspSiloDereferenceGlobals(FSP_SILO_GLOBALS *Globals);
|
VOID FspSiloDereferenceGlobals(FSP_SILO_GLOBALS *Globals);
|
||||||
VOID FspSiloGetContainerId(GUID *ContainerId);
|
VOID FspSiloGetContainerId(GUID *ContainerId);
|
||||||
NTSTATUS FspSiloInitialize(FSP_SILO_INIT_CALLBACK Init, FSP_SILO_FINI_CALLBACK Fini);
|
NTSTATUS FspSiloInitialize(FSP_SILO_INIT_CALLBACK Init, FSP_SILO_FINI_CALLBACK Fini);
|
||||||
|
NTSTATUS FspSiloPostInitialize(VOID);
|
||||||
VOID FspSiloFinalize(VOID);
|
VOID FspSiloFinalize(VOID);
|
||||||
|
|
||||||
/* process buffers */
|
/* process buffers */
|
||||||
|
@ -22,9 +22,11 @@
|
|||||||
#include <sys/driver.h>
|
#include <sys/driver.h>
|
||||||
|
|
||||||
NTSTATUS FspSiloInitialize(FSP_SILO_INIT_CALLBACK Init, FSP_SILO_FINI_CALLBACK Fini);
|
NTSTATUS FspSiloInitialize(FSP_SILO_INIT_CALLBACK Init, FSP_SILO_FINI_CALLBACK Fini);
|
||||||
|
NTSTATUS FspSiloPostInitialize(VOID);
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(INIT, FspSiloInitialize)
|
#pragma alloc_text(INIT, FspSiloInitialize)
|
||||||
|
#pragma alloc_text(INIT, FspSiloPostInitialize)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef PEJOB FSP_PESILO;
|
typedef PEJOB FSP_PESILO;
|
||||||
@ -293,15 +295,11 @@ NTSTATUS FspSiloInitialize(FSP_SILO_INIT_CALLBACK Init, FSP_SILO_FINI_CALLBACK F
|
|||||||
if (!NT_SUCCESS(Result))
|
if (!NT_SUCCESS(Result))
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
Result = CALL(PsStartSiloMonitor)(Monitor);
|
|
||||||
if (!NT_SUCCESS(Result))
|
|
||||||
goto exit;
|
|
||||||
|
|
||||||
FspSiloMonitor = Monitor;
|
FspSiloMonitor = Monitor;
|
||||||
FspSiloInitCallback = Init;
|
FspSiloInitCallback = Init;
|
||||||
FspSiloFiniCallback = Fini;
|
FspSiloFiniCallback = Fini;
|
||||||
|
|
||||||
FspSiloInitDone = TRUE;
|
FspSiloInitDone = TRUE;
|
||||||
|
|
||||||
Result = STATUS_SUCCESS;
|
Result = STATUS_SUCCESS;
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
@ -316,10 +314,23 @@ NTSTATUS FspSiloInitialize(FSP_SILO_INIT_CALLBACK Init, FSP_SILO_FINI_CALLBACK F
|
|||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NTSTATUS FspSiloPostInitialize(VOID)
|
||||||
|
{
|
||||||
|
if (!FspSiloInitDone)
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
|
||||||
|
return CALL(PsStartSiloMonitor)(FspSiloMonitor);
|
||||||
|
}
|
||||||
|
|
||||||
VOID FspSiloFinalize(VOID)
|
VOID FspSiloFinalize(VOID)
|
||||||
{
|
{
|
||||||
if (!FspSiloInitDone)
|
if (!FspSiloInitDone)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CALL(PsUnregisterSiloMonitor)(FspSiloMonitor);
|
CALL(PsUnregisterSiloMonitor)(FspSiloMonitor);
|
||||||
|
|
||||||
|
FspSiloMonitor = 0;
|
||||||
|
FspSiloInitCallback = 0;
|
||||||
|
FspSiloFiniCallback = 0;
|
||||||
|
FspSiloInitDone = FALSE;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,8 @@ set Config=Debug
|
|||||||
set Suffix=x64
|
set Suffix=x64
|
||||||
set Deploy=C:\Deploy\winfsp
|
set Deploy=C:\Deploy\winfsp
|
||||||
set Target=Win10DBG
|
set Target=Win10DBG
|
||||||
set Chkpnt=winfsp
|
set Chkpnt=docker+winfsp
|
||||||
|
set CImage=mcr.microsoft.com/windows/servercore:1909
|
||||||
if not X%1==X set Target=%1
|
if not X%1==X set Target=%1
|
||||||
if not X%2==X set Chkpnt=%2
|
if not X%2==X set Chkpnt=%2
|
||||||
|
|
||||||
@ -15,6 +16,10 @@ if not X%2==X set Chkpnt=%2
|
|||||||
echo regsvr32 /s winfsp-x64.dll
|
echo regsvr32 /s winfsp-x64.dll
|
||||||
) > %~dp0..\build\VStudio\build\%Config%\deploy-setup.bat
|
) > %~dp0..\build\VStudio\build\%Config%\deploy-setup.bat
|
||||||
|
|
||||||
|
(
|
||||||
|
echo docker run -it --rm --isolation=process -v%Deploy%:%Deploy%:RO %CImage% cmd.exe
|
||||||
|
) > %~dp0..\build\VStudio\build\%Config%\docker-run.bat
|
||||||
|
|
||||||
set Files=
|
set Files=
|
||||||
for %%f in (
|
for %%f in (
|
||||||
%~dp0..\build\VStudio\build\%Config%\
|
%~dp0..\build\VStudio\build\%Config%\
|
||||||
@ -23,6 +28,7 @@ for %%f in (
|
|||||||
winfsp-tests-%Suffix%.exe
|
winfsp-tests-%Suffix%.exe
|
||||||
memfs-%Suffix%.exe
|
memfs-%Suffix%.exe
|
||||||
deploy-setup.bat
|
deploy-setup.bat
|
||||||
|
docker-run.bat
|
||||||
) do (
|
) do (
|
||||||
set File=%%~f
|
set File=%%~f
|
||||||
if [!File:~-1!] == [\] (
|
if [!File:~-1!] == [\] (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user