MCPcopy Create free account
hub / github.com/NoMercy-ac/NoMercy / StartServer

Method StartServer

Source/Client/NM_Sys/API/CommPort.cpp:19–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17
18
19NTSTATUS CommPort::StartServer(PFLT_FILTER Filter, LPCWSTR PortName,_OnMessage OnMessage,LONG MaxConnections, OPTIONAL PVOID Cookie)
20{
21 if (ServerPort)
22 StopServer();
23
24 ParentFilter = Filter;
25 OnMessageCallback = OnMessage;
26
27 ServerCookie.ServerInstance = this;
28 ServerCookie.UserCookie = Cookie;
29
30 UNICODE_STRING Name = {};
31 RtlInitUnicodeString(&Name, PortName);
32
33 PSECURITY_DESCRIPTOR SecurityDescriptor = NULL;
34 NTSTATUS Status = FltBuildDefaultSecurityDescriptor(&SecurityDescriptor, FLT_PORT_ALL_ACCESS);
35 if (!NT_SUCCESS(Status))
36 {
37 KdPrint(("[Kernel-Bridge]: Create security descriptor failure (0x%X)\r\n", Status));
38 return Status;
39 }
40
41 OBJECT_ATTRIBUTES ObjectAttributes = {};
42 InitializeObjectAttributes(&ObjectAttributes, &Name, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, SecurityDescriptor);
43
44 Status = FltCreateCommunicationPort(ParentFilter, &ServerPort, &ObjectAttributes, &ServerCookie, OnConnectInternal, OnDisconnectInternal,OnMessageInternal, MaxConnections);
45
46 FltFreeSecurityDescriptor(SecurityDescriptor);
47
48 if (NT_SUCCESS(Status))
49 KdPrint(("[Kernel-Bridge]: Comm.Port created!\r\n"));
50 else
51 KdPrint(("[Kernel-Bridge]: Comm.Port failure: 0x%X\r\n", Status));
52
53 return Status;
54}
55
56VOID CommPort::StopServer()
57{

Callers 1

StartServerFunction · 0.80

Calls 1

StopServerFunction · 0.85

Tested by

no test coverage detected