57 lines
1.3 KiB
C++
57 lines
1.3 KiB
C++
/*++
|
|
Copyright (c) Microsoft Corporation
|
|
Licensed under the MIT license.
|
|
|
|
Module Name:
|
|
- IWaitRoutine.h
|
|
|
|
Abstract:
|
|
- This file specifies the interface that must be defined by a host application when queuing an API call to be serviced later.
|
|
Specifically, this defines which method will be called back "later" to service the request.
|
|
|
|
Author:
|
|
- Michael Niksa (miniksa) 01-Mar-2017
|
|
|
|
Revision History:
|
|
- Adapted from original items in srvinit.cpp, getset.cpp, directio.cpp, stream.cpp
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
#include "WaitTerminationReason.h"
|
|
|
|
enum class ReplyDataType
|
|
{
|
|
Write = 1,
|
|
Read = 2,
|
|
};
|
|
|
|
class IWaitRoutine
|
|
{
|
|
public:
|
|
IWaitRoutine(ReplyDataType type) :
|
|
_ReplyType(type)
|
|
|
|
{
|
|
}
|
|
|
|
virtual ~IWaitRoutine()
|
|
{
|
|
}
|
|
|
|
virtual bool Notify(const WaitTerminationReason TerminationReason,
|
|
const bool fIsUnicode,
|
|
_Out_ NTSTATUS* const pReplyStatus,
|
|
_Out_ size_t* const pNumBytes,
|
|
_Out_ DWORD* const pControlKeyState,
|
|
_Out_ void* const pOutputData) = 0;
|
|
|
|
ReplyDataType GetReplyType() const
|
|
{
|
|
return _ReplyType;
|
|
}
|
|
|
|
private:
|
|
ReplyDataType const _ReplyType;
|
|
};
|