twain3/Tirdparty/3rdparty/win/ddk/procgrp.h

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_)