Skip to content

Commit

Permalink
write IO completion API placeholders
Browse files Browse the repository at this point in the history
  • Loading branch information
ami-GS committed Jan 15, 2025
1 parent 09f2fbf commit c4a8f36
Showing 1 changed file with 70 additions and 1 deletion.
71 changes: 70 additions & 1 deletion src/inc/quic_platform_winkernel.h
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,75 @@ _CxPlatEventWaitWithTimeout(
#define CxPlatEventWaitWithTimeout(Event, TimeoutMs) \
(STATUS_SUCCESS == _CxPlatEventWaitWithTimeout(&Event, TimeoutMs))

//
// TODO: Publish and document the following APIs
//

// ACCESS_MASK
#define IO_COMPLETION_QUERY_STATE 0x0001
#define IO_COMPLETION_MODIFY_STATE 0x0002 // winnt
#define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) // winnt

typedef struct _FILE_IO_COMPLETION_INFORMATION {
PVOID KeyContext;
PVOID ApcContext;
IO_STATUS_BLOCK IoStatusBlock;
} FILE_IO_COMPLETION_INFORMATION, *PFILE_IO_COMPLETION_INFORMATION;

inline
NTSTATUS
NtCreateIoCompletion (
_Out_ PHANDLE IoCompletionHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_opt_ ULONG Count
)
{
UNREFERENCED_PARAMETER(IoCompletionHandle);
UNREFERENCED_PARAMETER(DesiredAccess);
UNREFERENCED_PARAMETER(ObjectAttributes);
UNREFERENCED_PARAMETER(Count);
return STATUS_NOT_IMPLEMENTED;
}

inline
NTSTATUS
NtSetIoCompletion (
_In_ HANDLE IoCompletionHandle,
_In_opt_ PVOID KeyContext,
_In_opt_ PVOID ApcContext,
_In_ NTSTATUS IoStatus,
_In_ ULONG_PTR IoStatusInformation
)
{
UNREFERENCED_PARAMETER(IoCompletionHandle);
UNREFERENCED_PARAMETER(KeyContext);
UNREFERENCED_PARAMETER(ApcContext);
UNREFERENCED_PARAMETER(IoStatus);
UNREFERENCED_PARAMETER(IoStatusInformation);
return STATUS_NOT_IMPLEMENTED;
}

inline
NTSTATUS
NtRemoveIoCompletionEx (
_In_ HANDLE IoCompletionHandle,
_Out_writes_to_(Count, *NumEntriesRemoved) PFILE_IO_COMPLETION_INFORMATION IoCompletionInformation,
_In_ ULONG Count,
_Out_ PULONG NumEntriesRemoved,
_In_opt_ PLARGE_INTEGER Timeout,
_In_ BOOLEAN Alertable
)
{
UNREFERENCED_PARAMETER(IoCompletionHandle);
UNREFERENCED_PARAMETER(IoCompletionInformation);
UNREFERENCED_PARAMETER(Count);
UNREFERENCED_PARAMETER(NumEntriesRemoved);
UNREFERENCED_PARAMETER(Timeout);
UNREFERENCED_PARAMETER(Alertable);
return STATUS_NOT_IMPLEMENTED;
}

//
// Event Queue Interfaces
//
Expand Down Expand Up @@ -600,7 +669,7 @@ CxPlatCqeGetSqe(
_In_ const CXPLAT_CQE* cqe
)
{
return (CXPLAT_SQE)cqe->ApcContext;
return (CXPLAT_SQE*)cqe->ApcContext;
}

//
Expand Down

0 comments on commit c4a8f36

Please sign in to comment.