public static extern NtStatus NtCreateSemaphore(out SafeKernelObjectHandle MutantHandle, SemaphoreAccessRights DesiredAccess, ObjectAttributes ObjectAttributes, int InitialCount, int MaximumCount);
public static extern NtStatus NtOpenSemaphore(out SafeKernelObjectHandle MutantHandle, SemaphoreAccessRights DesiredAccess, ObjectAttributes ObjectAttributes);
protected override sealed NtResult <NtSemaphore> OpenInternal(ObjectAttributes obj_attributes, SemaphoreAccessRights desired_access, bool throw_on_error) { return(NtSemaphore.Open(obj_attributes, desired_access, throw_on_error)); }