28 *OutMinimumAddress = (
UINT64)IoDescriptor->u.Interrupt.MinimumVector;
29 *OutMaximumAddress = (
UINT64)IoDescriptor->u.Interrupt.MaximumVector;
53 CmDescriptor->ShareDisposition = IoDescriptor->ShareDisposition;
54 CmDescriptor->Flags = IoDescriptor->Flags;
55 CmDescriptor->u.Interrupt.Level = (
ULONG)
Start;
56 CmDescriptor->u.Interrupt.Vector = (
ULONG)
Start;
57 CmDescriptor->u.Interrupt.Affinity = (
KAFFINITY)-1;
74 *
Start = CmDescriptor->u.Interrupt.Vector;
92 ScoreReg = (
INT32)(IoDescriptor->u.Interrupt.MaximumVector - IoDescriptor->u.Interrupt.MinimumVector + 1);
94 return (ScoreReg < 0) ?
MAXLONG : ScoreReg;
192 *
Length =
sizeof(*ArbiterInterface);
193 if (
Size <
sizeof(*ArbiterInterface))
196 ArbiterInterface->
Size =
sizeof(*ArbiterInterface);
200 ArbiterInterface->
Flags = 0;
static _Out_opt_ PULONGLONG Start
COMPILER_DEPENDENT_UINT64 UINT64
NTSTATUS NTAPI ArbiterLibInitializeInstance(_Inout_ PARBITER_INSTANCE Arbiter, _In_ PDEVICE_OBJECT BusDeviceObject, _In_ CM_RESOURCE_TYPE ResourceType, _In_ PCWSTR ArbiterName, _In_ PCWSTR OrderName, _In_ PARB_TRANSLATE_ORDERING TranslateOrderingFunction)
#define ARBITER_MAXIMUM_ADDRESS
NTSTATUS NTAPI ArbiterLibHandler(_In_ PVOID Context, _In_ ARBITER_ACTION Action, _Inout_ PARBITER_PARAMETERS Parameters)
The single ARBITER_ACTION dispatcher every exported ARBITER_INTERFACE points its ArbiterHandler at; C...
unsigned __int64 * PUINT64
#define NT_SUCCESS(StatCode)
static NTSTATUS NTAPI HalpLegacyPCArbUnpackRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumAddress, _Out_ PUINT64 OutMaximumAddress, _Out_ PUINT64 OutLength, _Out_ PUINT64 OutAlignment)
static VOID NTAPI HalpLegacyPCArbDereference(PVOID Context)
static INT32 NTAPI HalpLegacyPCArbScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
NTSTATUS NTAPI HalpLegacyPCQueryArbInterface(_Out_writes_bytes_(Size) PVOID Interface, _In_ ULONG Size, _Out_ PULONG Length)
Query the legacy PC Arbiter.
static NTSTATUS NTAPI HalpLegacyPCArbUnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT64 OutLength)
static VOID NTAPI HalpLegacyPCArbReference(PVOID Context)
static NTSTATUS NTAPI HalpLegacyPCArbPackResource(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
NTSTATUS NTAPI HalpLegacyPCCreateArbiter(_In_ PDEVICE_OBJECT BusFdo)
Initialize the legacy PC arbiter that uses PIR for PIC IRQ assignments.
static ARBITER_INSTANCE LegacyPCArbiter
NTSYSAPI NTSTATUS NTAPI RtlAddRange(_Inout_ PRTL_RANGE_LIST RangeList, _In_ ULONGLONG Start, _In_ ULONGLONG End, _In_ UCHAR Attributes, _In_ ULONG Flags, _In_opt_ PVOID UserData, _In_opt_ PVOID Owner)
#define RTL_RANGE_LIST_ADD_IF_CONFLICT
#define _Out_writes_bytes_(s)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define CmResourceTypeInterrupt
#define STATUS_BUFFER_TOO_SMALL
PARB_UNPACK_RESOURCE UnpackResource
PARB_SCORE_REQUIREMENT ScoreRequirement
PRTL_RANGE_LIST Allocation
PARB_UNPACK_REQUIREMENT UnpackRequirement
PARB_PACK_RESOURCE PackResource
PINTERFACE_REFERENCE InterfaceReference
PARBITER_HANDLER ArbiterHandler
PINTERFACE_DEREFERENCE InterfaceDereference
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface