241 lines
5.4 KiB
C
241 lines
5.4 KiB
C
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
procgrp.h
|
|
|
|
Abstract:
|
|
|
|
This header exposes the new kernel APIs to device drivers in a
|
|
manner that makes it possible for drivers referencing these new
|
|
APIs to run on downlevel systems.
|
|
|
|
--*/
|
|
|
|
#ifndef _WDMLIB_PROCGRP_H_
|
|
#define _WDMLIB_PROCGRP_H_
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//
|
|
// Initialization function of the compatibility library. This function
|
|
// must be called at PASSIVE_LEVEL prior to calling any of the APIs in
|
|
// this library.
|
|
//
|
|
|
|
VOID
|
|
WdmlibProcgrpInitialize (
|
|
VOID
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeGetCurrentProcessorNumberEx. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeGetCurrentProcessorNumberEx
|
|
#define KeGetCurrentProcessorNumberEx WdmlibKeGetCurrentProcessorNumberEx
|
|
|
|
ULONG
|
|
WdmlibKeGetCurrentProcessorNumberEx (
|
|
__out_opt PPROCESSOR_NUMBER ProcNumber
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeQueryActiveProcessorCountEx. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeQueryActiveProcessorCountEx
|
|
#define KeQueryActiveProcessorCountEx WdmlibKeQueryActiveProcessorCountEx
|
|
|
|
ULONG
|
|
WdmlibKeQueryActiveProcessorCountEx (
|
|
__in USHORT GroupNumber
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeQueryMaximumProcessorCountEx. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeQueryMaximumProcessorCountEx
|
|
#define KeQueryMaximumProcessorCountEx WdmlibKeQueryMaximumProcessorCountEx
|
|
|
|
ULONG
|
|
WdmlibKeQueryMaximumProcessorCountEx (
|
|
__in USHORT GroupNumber
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeQueryMaximumProcessorCount. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeQueryMaximumProcessorCount
|
|
#define KeQueryMaximumProcessorCount WdmlibKeQueryMaximumProcessorCount
|
|
|
|
ULONG
|
|
WdmlibKeQueryMaximumProcessorCount (
|
|
VOID
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of KeQueryGroupAffinity.
|
|
// See DDK documentation for more details on this API.
|
|
//
|
|
|
|
#undef KeQueryGroupAffinity
|
|
#define KeQueryGroupAffinity WdmlibKeQueryGroupAffinity
|
|
|
|
KAFFINITY
|
|
WdmlibKeQueryGroupAffinity (
|
|
__in USHORT GroupNumber
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeQueryActiveGroupCount. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeQueryActiveGroupCount
|
|
#define KeQueryActiveGroupCount WdmlibKeQueryActiveGroupCount
|
|
|
|
USHORT
|
|
WdmlibKeQueryActiveGroupCount (
|
|
VOID
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeQueryMaximumGroupCount. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeQueryMaximumGroupCount
|
|
#define KeQueryMaximumGroupCount WdmlibKeQueryMaximumGroupCount
|
|
|
|
USHORT
|
|
WdmlibKeQueryMaximumGroupCount (
|
|
VOID
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeGetProcessorNumberFromIndex. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeGetProcessorNumberFromIndex
|
|
#define KeGetProcessorNumberFromIndex WdmlibKeGetProcessorNumberFromIndex
|
|
|
|
NTSTATUS
|
|
WdmlibKeGetProcessorNumberFromIndex (
|
|
__in ULONG ProcIndex,
|
|
__out PPROCESSOR_NUMBER ProcNumber
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeGetProcessorIndexFromNumber. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeGetProcessorIndexFromNumber
|
|
#define KeGetProcessorIndexFromNumber WdmlibKeGetProcessorIndexFromNumber
|
|
|
|
ULONG
|
|
WdmlibKeGetProcessorIndexFromNumber (
|
|
__in PPROCESSOR_NUMBER ProcNumber
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeSetSystemAffinityThreadEx. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeSetSystemAffinityThreadEx
|
|
#define KeSetSystemAffinityThreadEx WdmlibKeSetSystemAffinityThreadEx
|
|
|
|
KAFFINITY
|
|
WdmlibKeSetSystemAffinityThreadEx (
|
|
__in KAFFINITY Affinity
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeSetSystemGroupAffinityThread. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeSetSystemGroupAffinityThread
|
|
#define KeSetSystemGroupAffinityThread WdmlibKeSetSystemGroupAffinityThread
|
|
|
|
VOID
|
|
WdmlibKeSetSystemGroupAffinityThread (
|
|
__in PGROUP_AFFINITY NewAffinity,
|
|
__out_opt PGROUP_AFFINITY PreviousAffinity
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeRevertToUserAffinityThreadEx. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeRevertToUserAffinityThreadEx
|
|
#define KeRevertToUserAffinityThreadEx WdmlibKeRevertToUserAffinityThreadEx
|
|
|
|
VOID
|
|
WdmlibKeRevertToUserAffinityThreadEx (
|
|
__in KAFFINITY Affinity
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeRevertToUserGroupAffinityThread. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeRevertToUserGroupAffinityThread
|
|
#define KeRevertToUserGroupAffinityThread \
|
|
WdmlibKeRevertToUserGroupAffinityThread
|
|
|
|
VOID
|
|
WdmlibKeRevertToUserGroupAffinityThread (
|
|
__in PGROUP_AFFINITY PreviousAffinity
|
|
);
|
|
|
|
//
|
|
// Supply an overrideable library implementation of
|
|
// KeSetTargetProcessorDpcEx. See DDK documentation for more details
|
|
// on this API.
|
|
//
|
|
|
|
#undef KeSetTargetProcessorDpcEx
|
|
#define KeSetTargetProcessorDpcEx WdmlibKeSetTargetProcessorDpcEx
|
|
|
|
NTSTATUS
|
|
WdmlibKeSetTargetProcessorDpcEx (
|
|
__inout PKDPC Dpc,
|
|
__in PPROCESSOR_NUMBER ProcNumber
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // !defined(_WDMLIB_PROCGRP_H_)
|
|
|