NtCreateIoCompletion - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTIOAPI_H

NTSYSCALLAPI
NTSTATUS
NTAPI
NtCreateIoCompletion(
    _Out_ PHANDLE IoCompletionHandle,
    _In_ ACCESS_MASK DesiredAccess,
    _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
    _In_opt_ ULONG Count
    );

#endif

View code on GitHub
#ifndef _NTZWAPI_H

NTSYSCALLAPI
NTSTATUS
NTAPI
ZwCreateIoCompletion(
    _Out_ PHANDLE IoCompletionHandle,
    _In_ ACCESS_MASK DesiredAccess,
    _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
    _In_opt_ ULONG Count
    );

#endif

View code on GitHub

Function NtCreateIoCompletion creates IO Completion Object. IO Completion Object is used for waiting on pending IO operation (reading or writing) in multi-process file access. It contains more information about IO operation than synchronization event or APC Routine.

IoCompletionHandle

Result of call - HANDLE to newly created IO Completion Object.

DesiredAccess

Access mask for created HANDLE. Can be combination of:

ObjectAttributes

Optionally contains object name, in Objects Namespace.

NumberOfConcurrentThreads

Number of threads accessing File Object associated with IO Completion. If Zero, system reserves memory for number of threads equal to current number of processes.

Documented by

See also