Well, you need to block NtOpenProcess, NtAllocateVirtualMemory, NtWriteVirtualMemory, NtCreateThreadEx, NtCreateThread, NtReadVirtualMemory, NtQueApcThread, NtQueApcThreadEx. Block these calls and you would have achieved blocking Code Injections and DLL Injections. By the way I advise you to do this in Kernel Mode (obviously ZW* Equivalent) to ensure Kernel Injections cannot take place. Additionally Block NtOpenFile, NtDeleteFile, NtWriteFile, NtCreateFile NtReadFile.
This would prevent most* 99% of all Malware Injections. Also block NtUnMapViewOfSection this would block almost all methods of injection. Do this in Kernel Mode via SYSENTER_MSR. Your would become immortal and to make sure your process and all them are protected hook:
NtOpenProcess, NtTerminateProcess, NtQueryDirectoryFile, NtQuerySystemInformation, NtDeleteFile and other NT** Or ZW** functions for Registry.