public static extern NtStatus NtCreateIoCompletion(
     out SafeKernelObjectHandle IoCompletionHandle,
     IoCompletionAccessRights DesiredAccess,
     [In] ObjectAttributes ObjectAttributes,
     int NumberOfConcurrentThreads
     );
 public static extern NtStatus NtOpenIoCompletion(
     out SafeKernelObjectHandle IoCompletionHandle,
     IoCompletionAccessRights DesiredAccess,
     [In] ObjectAttributes ObjectAttributes
     );
 protected override sealed NtResult <NtIoCompletion> OpenInternal(ObjectAttributes obj_attributes,
                                                                  IoCompletionAccessRights desired_access, bool throw_on_error)
 {
     return(NtIoCompletion.Open(obj_attributes, desired_access, throw_on_error));
 }