17 IN const KSMETHOD_SET* MethodSet,
23 OUT PFNKSHANDLER *MethodHandler,
34 for(ItemIndex = 0; ItemIndex < MethodSet[
Index].MethodsCount; ItemIndex++)
36 if (MethodSet[
Index].MethodItem[ItemIndex].
MethodId == Method->Id)
41 IoStatus->Information = MethodSet[
Index].MethodItem[ItemIndex].MinMethod;
48 IoStatus->Information = MethodSet[
Index].MethodItem[ItemIndex].MinData;
66 *
Flags = MethodSet[
Index].MethodItem[ItemIndex].Flags;
87 *MethodHandler = MethodSet[
Index].MethodItem[ItemIndex].MethodHandler;
88 *
Set = (PKSMETHOD_SET)&MethodSet[
Index];
102 IN const KSMETHOD_SET *MethodSet,
110 PFNKSHANDLER MethodHandler =
NULL;
133 ASSERT(MethodItemSize == 0 || MethodItemSize ==
sizeof(KSMETHOD_ITEM));
141 KSMETHOD_SET_IRP_STORAGE(
Irp) =
Set;
167 Irp->IoStatus.Information =
sizeof(
GUID) * MethodSetsCount;
199 _In_reads_(MethodSetsCount)
const KSMETHOD_SET* MethodSet)
211KsMethodHandlerWithAllocator(
214 _In_reads_(MethodSetsCount)
const KSMETHOD_SET* MethodSet,
225 IN const KSFASTMETHOD_ITEM * FastIoTable,
227 OUT PFNKSFASTHANDLER * FastPropertyHandler)
236 if (FastIoTable[
Index].MethodSupported)
238 *FastPropertyHandler = FastIoTable[
Index].MethodHandler;
263 IN const KSMETHOD_SET* MethodSet)
269 PFNKSFASTHANDLER FastMethodHandler;
326 }
while(
Index < MethodSetsCount);
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
#define NT_SUCCESS(StatCode)
static const WCHAR Description[]
#define _IRQL_requires_max_(irql)
#define KSMETHOD_TYPE_BASICSUPPORT
struct KSIDENTIFIER KSPROPERTY
#define KSMETHOD_TYPE_SETSUPPORT
struct KSIDENTIFIER * PKSMETHOD
#define ExGetPreviousMode
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
#define EXCEPTION_EXECUTE_HANDLER
#define KSPROPTYPESETID_General
struct KSPROPERTY_DESCRIPTION * PKSPROPERTY_DESCRIPTION
NTSTATUS NTAPI KspMethodHandlerWithAllocator(IN PIRP Irp, IN ULONG MethodSetsCount, IN const KSMETHOD_SET *MethodSet, IN PFNKSALLOCATOR Allocator OPTIONAL, IN ULONG MethodItemSize OPTIONAL)
NTSTATUS FindFastMethodHandler(IN ULONG FastIoCount, IN const KSFASTMETHOD_ITEM *FastIoTable, IN PKSMETHOD MethodId, OUT PFNKSFASTHANDLER *FastPropertyHandler)
NTSTATUS FindMethodHandler(IN PIO_STATUS_BLOCK IoStatus, IN const KSMETHOD_SET *MethodSet, IN ULONG MethodSetCount, IN PKSMETHOD Method, IN ULONG InputBufferLength, IN ULONG OutputBufferLength, OUT PVOID OutputBuffer, OUT PFNKSHANDLER *MethodHandler, OUT PKSMETHOD_SET *Set)
KSDDKAPI BOOLEAN NTAPI KsFastMethodHandler(IN PFILE_OBJECT FileObject, IN PKSMETHOD UNALIGNED Method, IN ULONG MethodLength, IN OUT PVOID UNALIGNED Data, IN ULONG DataLength, OUT PIO_STATUS_BLOCK IoStatus, IN ULONG MethodSetsCount, IN const KSMETHOD_SET *MethodSet)
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
#define STATUS_INVALID_BUFFER_SIZE
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define STATUS_BUFFER_TOO_SMALL
PULONG MinorVersion OPTIONAL
struct _IO_STACK_LOCATION::@1575::@1576 DeviceIoControl
union _IO_STACK_LOCATION::@1575 Parameters
#define RtlMoveMemory(Destination, Source, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_MORE_ENTRIES
#define STATUS_INSUFFICIENT_RESOURCES
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
#define IsEqualGUIDAligned(guid1, guid2)
_Must_inspect_result_ _In_ ULONG Flags