On 2016-08-10 00:10, [email protected] wrote: > + /* Calc and allocate a buffer to hold our filter name */ > + BufferLength = wcslen(lpFilterName) * sizeof(WCHAR); > + FilterName = RtlAllocateHeap(GetProcessHeap(), > + 0, > + BufferLength + sizeof(UNICODE_STRING)); > + if (FilterName == NULL) > + { > + CloseHandle(hFltMgr); > + return HRESULT_FROM_WIN32(ERROR_OUTOFMEMORY); > + } > + > + /* Build up the filter name into a real life string */ > + FilterName->Buffer = (PWCH)(FilterName + 1); > + FilterName->Length = BufferLength; > + FilterName->MaximumLength = BufferLength; > + RtlCopyMemory(FilterName->Buffer, lpFilterName, BufferLength); > + > + /* Tell the filter manager to load the filter for us */ > + dwError = SendIoctl(hFltMgr, > + Load ? IOCTL_LOAD_FILTER : IOCTL_UNLOAD_FILTER, > + FilterName, > + BufferLength + sizeof(UNICODE_STRING)); > + > + /* Cleaup and bail*/ > + CloseHandle(hFltMgr); > + return HRESULT_FROM_WIN32(dwError); > }
You're leaking this allocation. > +// Hack - our SDK reports NTDDI_VERSION as 0x05020100 (from _WIN32_WINNT > 0x502) > +// which doesn't pass the FLT_MGR_BASELINE check in fltkernel.h > +#define NTDDI_VERSION NTDDI_WS03SP1 We typically set this kind of thing in CMakeLists.txt.. however maybe we should define it this way by default _______________________________________________ Ros-dev mailing list [email protected] http://www.reactos.org/mailman/listinfo/ros-dev
