#include "upcall.h"
#include "util.h"
-#define MAX_NUM_THREADS 128
+//#define MAX_NUM_THREADS 128
+#define MAX_NUM_THREADS 1
DWORD NFS41D_VERSION = 0;
#ifndef __REACTOS__
}
if (upcall.opcode == NFS41_SHUTDOWN) {
+ DbgPrint("Shutdown\n");
printf("Shutting down..\n");
exit(0);
}
#ifndef STANDALONE_NFSD
VOID ServiceStop()
{
+ DbgPrint("Setting stop event\n");
if (stop_event)
SetEvent(stop_event);
}
(socklen_t)ptr->ai_addrlen, hostname, NI_MAXHOST,
servInfo, NI_MAXSERV, NI_NAMEREQD);
if (status)
+#if 0
dprintf(1, "getnameinfo failed %d\n", WSAGetLastError());
else {
+#else
+ {
+ dprintf(1, "getnameinfo failed %d, forcing name\n", WSAGetLastError());
+ memcpy(hostname, "reactos.home", sizeof("reactos.home"));
+ status = 0;
+ }
+ {
+#endif
size_t i, len = strlen(hostname);
char *p = hostname;
dprintf(1, "getdomainname: hostname %s %d\n", hostname, len);
}
#ifndef STANDALONE_NFSD
+ DbgPrint("WaitEvent\n");
+
stop_event = CreateEvent(NULL, TRUE, FALSE, NULL);
if (stop_event == NULL)
goto out_pipe;
// report the status to the service control manager.
if (!ReportStatusToSCMgr(SERVICE_RUNNING, NO_ERROR, 0))
goto out_pipe;
+ DbgPrint("Starting wait\n");
WaitForSingleObject(stop_event, INFINITE);
#else
//This can be changed to waiting on an array of handles and using waitformultipleobjects
if (!sshStatusHandle)
goto cleanup;
+ DbgPrint("Starting service\n");
+
// SERVICE_STATUS members that don't change in example
//
ssStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
3000)) // wait hint
goto cleanup;
+ DbgPrint("Starting service 2\n");
+
+ SetConsoleCtrlHandler( ControlHandler, TRUE );
ServiceStart( dwArgc, lpszArgv );
+ DbgPrint("Done\n");
+
cleanup:
// try to report the stopped status to the service control manager.
{
// Handle the requested control code.
//
+
+ DbgPrint("service_ctrl called\n");
+
switch (dwCtrlCode)
{
// Stop the service.
// ServiceStop(). This avoids a race condition
// which may result in a 1053 - The Service did not respond...
// error.
+#ifdef __REACTOS__
+ case SERVICE_CONTROL_SHUTDOWN:
+#endif
case SERVICE_CONTROL_STOP:
+ DbgPrint("for stop\n");
ReportStatusToSCMgr(SERVICE_STOP_PENDING, NO_ERROR, 0);
ServiceStop();
+ DbgPrint("Done\n");
return;
// Update the service status.
if (dwCurrentState == SERVICE_START_PENDING)
ssStatus.dwControlsAccepted = 0;
else
+#ifndef __REACTOS__
ssStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
+#else
+ ssStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
+#endif
ssStatus.dwCurrentState = dwCurrentState;
ssStatus.dwWin32ExitCode = dwWin32ExitCode;
#ifdef LANGUAGE_EN_US
#include "lang/en-US.rc"
#endif
+#ifdef LANGUAGE_FR_FR
+ #include "lang/fr-FR.rc"
+#endif
#ifdef LANGUAGE_HE_IL
#include "lang/he-IL.rc"
#endif
--- /dev/null
+/*
+ * PROJECT: ReactOS CryptExt Shell Extension
+ * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
+ * PURPOSE: French (Neutral) resource translation
+ * COPYRIGHT: Copyright 2019 Pierre Schweitzer (pierre@reactos.org)
+ */
+
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+ IDS_INVALIDFILE "Ce n'est pas un fichier de certificat valide."
+ IDS_CER_FILE "Fichier de certificat"
+END
* IRemUnknown object */
void RPC_StartRemoting(struct apartment *apt)
{
+ ERR("Starting remoting: %d %p %p\n", apt->remoting_started, GetCurrentProcessId(), GetCurrentThreadId());
+
if (!InterlockedExchange(&apt->remoting_started, TRUE))
{
WCHAR endpoint[200];
PIO_STACK_LOCATION Stack;
PDEVICE_EXTENSION DeviceExt;
- DPRINT1("NtfsUserFsRequest(%p, %p)\n", DeviceObject, Irp);
+ DPRINT("NtfsUserFsRequest(%p, %p)\n", DeviceObject, Irp);
Stack = IoGetCurrentIrpStackLocation(Irp);
DeviceExt = DeviceObject->DeviceExtension;
PIRP Irp;
PDEVICE_OBJECT DeviceObject;
- DPRINT1("NtfsFileSystemControl() called\n");
+ DPRINT("NtfsFileSystemControl() called\n");
DeviceObject = IrpContext->DeviceObject;
Irp = IrpContext->Irp;
add_subdirectory(gdb2)
add_subdirectory(gdihv)
add_subdirectory(genguid)
+add_subdirectory(ioctlbf)
add_subdirectory(nls2txt)
add_subdirectory(shimdbg)
add_subdirectory(shlextdbg)