ReactOS  0.4.15-dev-5452-g3c95c95
wdfinterrupt.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _WDF_INTERRUPT_CONFIG
 
struct  _WDF_INTERRUPT_INFO
 
struct  _WDF_INTERRUPT_EXTENDED_POLICY
 

Macros

#define WDF_EXTERN_C
 
#define WDF_EXTERN_C_START
 
#define WDF_EXTERN_C_END
 

Typedefs

typedef WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITY WDF_INTERRUPT_POLARITY
 
typedef WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITYPWDF_INTERRUPT_POLARITY
 
typedef enum _WDF_INTERRUPT_POLICY WDF_INTERRUPT_POLICY
 
typedef enum _WDF_INTERRUPT_POLICYPWDF_INTERRUPT_POLICY
 
typedef enum _WDF_INTERRUPT_PRIORITY WDF_INTERRUPT_PRIORITY
 
typedef enum _WDF_INTERRUPT_PRIORITYPWDF_INTERRUPT_PRIORITY
 
typedef _In_ ULONG MessageID
 
typedef EVT_WDF_INTERRUPT_ISR * PFN_WDF_INTERRUPT_ISR
 
typedef _In_ WDFCONTEXT Context
 
typedef EVT_WDF_INTERRUPT_SYNCHRONIZE * PFN_WDF_INTERRUPT_SYNCHRONIZE
 
typedef _In_ WDFOBJECT AssociatedObject
 
typedef EVT_WDF_INTERRUPT_DPC * PFN_WDF_INTERRUPT_DPC
 
typedef EVT_WDF_INTERRUPT_WORKITEM * PFN_WDF_INTERRUPT_WORKITEM
 
typedef _In_ WDFDEVICE AssociatedDevice
 
typedef EVT_WDF_INTERRUPT_ENABLE * PFN_WDF_INTERRUPT_ENABLE
 
typedef EVT_WDF_INTERRUPT_DISABLE * PFN_WDF_INTERRUPT_DISABLE
 
typedef struct _WDF_INTERRUPT_CONFIG WDF_INTERRUPT_CONFIG
 
typedef struct _WDF_INTERRUPT_CONFIGPWDF_INTERRUPT_CONFIG
 
typedef struct _WDF_INTERRUPT_INFO WDF_INTERRUPT_INFO
 
typedef struct _WDF_INTERRUPT_INFOPWDF_INTERRUPT_INFO
 
typedef struct _WDF_INTERRUPT_EXTENDED_POLICY WDF_INTERRUPT_EXTENDED_POLICY
 
typedef struct _WDF_INTERRUPT_EXTENDED_POLICYPWDF_INTERRUPT_EXTENDED_POLICY
 
typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFINTERRUPTCREATE) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
typedef _Must_inspect_result_ _In_ WDFDEVICE Device
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
 
typedef WDFAPI BOOLEAN(STDCALLPFN_WDFINTERRUPTQUEUEDPCFORISR) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
 
typedef WDFAPI BOOLEAN(STDCALLPFN_WDFINTERRUPTQUEUEWORKITEMFORISR) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
 
typedef _In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback = EvtDevicePowerStateChange
 
typedef _In_ _Requires_lock_not_held_(_Curr_) _Acquires_lock_(_Curr_) WDFINTERRUPT Interrupt)
 
typedef _In_ _Requires_lock_held_(_Curr_) _Releases_lock_(_Curr_) WDFINTERRUPT Interrupt) == AcquireExclusive && return != FALSE
 Returns the quota, depending on the given pool type of the quota in question. The routine is used exclusively by Process Manager for quota handling. More...
 
typedef _Must_inspect_result_ WDFAPI PKINTERRUPT(STDCALLPFN_WDFINTERRUPTWDMGETINTERRUPT) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
 
typedef _In_ WDFINTERRUPT _Out_ PWDF_INTERRUPT_INFO Info
 
typedef _In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
 
typedef _In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
 
typedef _In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY _In_ KAFFINITY TargetProcessorSet
 
typedef _In_ WDFINTERRUPT _In_ PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
 
typedef WDFAPI WDFDEVICE(STDCALLPFN_WDFINTERRUPTGETDEVICE) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
 
typedef _Must_inspect_result_ _Post_satisfies_(return==1||return==0) _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN(STDCALL *PFN_WDFINTERRUPTTRYTOACQUIRELOCK) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals ==0
 
typedef _Must_inspect_result_ _In_ _Acquires_lock_(_Curr_)) WDFINTERRUPT Interrupt) = NULL
 

Enumerations

enum  _WDF_INTERRUPT_POLARITY { WdfInterruptPolarityUnknown = 0, WdfInterruptActiveHigh, WdfInterruptActiveLow }
 
enum  _WDF_INTERRUPT_POLICY {
  WdfIrqPolicyMachineDefault = 0, WdfIrqPolicyAllCloseProcessors, WdfIrqPolicyOneCloseProcessor, WdfIrqPolicyAllProcessorsInMachine,
  WdfIrqPolicySpecifiedProcessors, WdfIrqPolicySpreadMessagesAcrossAllProcessors
}
 
enum  _WDF_INTERRUPT_PRIORITY { WdfIrqPriorityUndefined = 0, WdfIrqPriorityLow, WdfIrqPriorityNormal, WdfIrqPriorityHigh }
 

Functions

typedef _Function_class_ (EVT_WDF_INTERRUPT_ISR) _IRQL_requires_same_ _IRQL_requires_min_(PASSIVE_LEVEL) BOOLEAN STDCALL EVT_WDF_INTERRUPT_ISR(_In_ WDFINTERRUPT Interrupt
 
typedef _Function_class_ (EVT_WDF_INTERRUPT_SYNCHRONIZE) _IRQL_requires_same_ _IRQL_requires_min_(PASSIVE_LEVEL) BOOLEAN STDCALL EVT_WDF_INTERRUPT_SYNCHRONIZE(_In_ WDFINTERRUPT Interrupt
 
typedef _Function_class_ (EVT_WDF_INTERRUPT_DPC) _IRQL_requires_same_ _IRQL_requires_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_INTERRUPT_DPC(_In_ WDFINTERRUPT Interrupt
 
typedef _Function_class_ (EVT_WDF_INTERRUPT_WORKITEM) _IRQL_requires_same_ _IRQL_requires_(PASSIVE_LEVEL) VOID STDCALL EVT_WDF_INTERRUPT_WORKITEM(_In_ WDFINTERRUPT Interrupt
 
typedef _Function_class_ (EVT_WDF_INTERRUPT_ENABLE) _IRQL_requires_same_ _IRQL_requires_min_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_INTERRUPT_ENABLE(_In_ WDFINTERRUPT Interrupt
 
typedef _Function_class_ (EVT_WDF_INTERRUPT_DISABLE) _IRQL_requires_same_ _IRQL_requires_min_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_INTERRUPT_DISABLE(_In_ WDFINTERRUPT Interrupt
 
FORCEINLINE VOID WDF_INTERRUPT_CONFIG_INIT (_Out_ PWDF_INTERRUPT_CONFIG Configuration, _In_ PFN_WDF_INTERRUPT_ISR EvtInterruptIsr, _In_opt_ PFN_WDF_INTERRUPT_DPC EvtInterruptDpc)
 
FORCEINLINE VOID WDF_INTERRUPT_INFO_INIT (_Out_ PWDF_INTERRUPT_INFO Info)
 
FORCEINLINE VOID WDF_INTERRUPT_EXTENDED_POLICY_INIT (_Out_ PWDF_INTERRUPT_EXTENDED_POLICY ExtendedPolicy)
 
_Must_inspect_result_ _IRQL_requires_max_ (DISPATCH_LEVEL) FORCEINLINE NTSTATUS WdfInterruptCreate(_In_ WDFDEVICE Device
 
FORCEINLINE BOOLEAN WdfInterruptQueueDpcForIsr (_In_ WDFINTERRUPT Interrupt)
 
FORCEINLINE BOOLEAN WdfInterruptQueueWorkItemForIsr (_In_ WDFINTERRUPT Interrupt)
 
typedef _IRQL_requires_max_ (DISPATCH_LEVEL+1) WDFAPI VOID(STDCALL *PFN_WDFINTERRUPTACQUIRELOCK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
typedef _IRQL_requires_max_ (PASSIVE_LEVEL) WDFAPI VOID(STDCALL *PFN_WDFINTERRUPTENABLE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 Queries information details about a security descriptor. More...
 
_Must_inspect_result_ FORCEINLINE PKINTERRUPT WdfInterruptWdmGetInterrupt (_In_ WDFINTERRUPT Interrupt)
 
FORCEINLINE WDFDEVICE WdfInterruptGetDevice (_In_ WDFINTERRUPT Interrupt)
 
_Must_inspect_result_ _Post_satisfies_ (return==1||return==0) _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN WdfInterruptTryToAcquireLock(_In_ _Requires_lock_not_held_(_Curr_) _When_(return!=0
 
_Must_inspect_result_ _Acquires_lock_ (_Curr_)) WDFINTERRUPT Interrupt)
 

Macro Definition Documentation

◆ WDF_EXTERN_C

#define WDF_EXTERN_C

Definition at line 35 of file wdfinterrupt.h.

◆ WDF_EXTERN_C_END

#define WDF_EXTERN_C_END

Definition at line 37 of file wdfinterrupt.h.

◆ WDF_EXTERN_C_START

#define WDF_EXTERN_C_START

Definition at line 36 of file wdfinterrupt.h.

Typedef Documentation

◆ _Acquires_lock_

_Acquires_lock_ = NULL

Definition at line 743 of file wdfinterrupt.h.

◆ _IRQL_requires_max_

typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFINTERRUPTCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals

Definition at line 365 of file wdfinterrupt.h.

◆ _Post_satisfies_

_Post_satisfies_ ==0

iXlate functions

Definition at line 734 of file wdfinterrupt.h.

◆ _Requires_lock_held_

_Requires_lock_held_ == AcquireExclusive && return != FALSE

Returns the quota, depending on the given pool type of the quota in question. The routine is used exclusively by Process Manager for quota handling.

Releases some of excess quotas in order to attempt free up some resources. This is done primarily in in case the Memory Manager fails to raise the quota limit.

Parameters
[in]PoolTypeThe type of quota pool which the quota in question has to be raised.
[in]CurrentMaxQuotaThe current maximum limit of quota threshold.
Returns
Nothing.
Remarks
A spin lock must be held when raising the pool quota limit to avoid race occurences.
Parameters
[in]QuotaTypeProcess pool quota type.
[out]ReturnedQuotasA pointer to the returned amount of quotas back to Memory Manager.
Returns
Nothing.
Remarks
The function releases excess paged or non paged pool quotas. Page file quota type is not permitted. Furthermore, quota spin lock has to be held when returning quotas.

Definition at line 518 of file wdfinterrupt.h.

◆ _Requires_lock_not_held_

_In_ _Requires_lock_not_held_ ( _Curr_  )

Definition at line 489 of file wdfinterrupt.h.

◆ AssociatedDevice

typedef _In_ WDFDEVICE AssociatedDevice

Definition at line 173 of file wdfinterrupt.h.

◆ AssociatedObject

Definition at line 132 of file wdfinterrupt.h.

◆ Attributes

◆ Callback

◆ Configuration

◆ Context

Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFCONTEXT Context
Definition: wdfinterrupt.h:113
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
Definition: wdfinterrupt.h:456

Definition at line 113 of file wdfinterrupt.h.

◆ Device

typedef _Must_inspect_result_ _In_ WDFDEVICE Device

Definition at line 372 of file wdfinterrupt.h.

◆ Info

Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFINTERRUPT _Out_ PWDF_INTERRUPT_INFO Info
Definition: wdfinterrupt.h:622

Definition at line 622 of file wdfinterrupt.h.

◆ Interrupt

_In_ WDFINTERRUPT Interrupt
Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
Definition: wdfinterrupt.h:372
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfinterrupt.h:372

Definition at line 372 of file wdfinterrupt.h.

◆ MessageID

typedef _In_ ULONG MessageID

Definition at line 92 of file wdfinterrupt.h.

◆ PFN_WDF_INTERRUPT_DISABLE

typedef EVT_WDF_INTERRUPT_DISABLE* PFN_WDF_INTERRUPT_DISABLE

Definition at line 197 of file wdfinterrupt.h.

◆ PFN_WDF_INTERRUPT_DPC

typedef EVT_WDF_INTERRUPT_DPC* PFN_WDF_INTERRUPT_DPC

Definition at line 134 of file wdfinterrupt.h.

◆ PFN_WDF_INTERRUPT_ENABLE

typedef EVT_WDF_INTERRUPT_ENABLE* PFN_WDF_INTERRUPT_ENABLE

Definition at line 175 of file wdfinterrupt.h.

◆ PFN_WDF_INTERRUPT_ISR

typedef EVT_WDF_INTERRUPT_ISR* PFN_WDF_INTERRUPT_ISR

Definition at line 94 of file wdfinterrupt.h.

◆ PFN_WDF_INTERRUPT_SYNCHRONIZE

typedef EVT_WDF_INTERRUPT_SYNCHRONIZE* PFN_WDF_INTERRUPT_SYNCHRONIZE

Definition at line 115 of file wdfinterrupt.h.

◆ PFN_WDF_INTERRUPT_WORKITEM

typedef EVT_WDF_INTERRUPT_WORKITEM* PFN_WDF_INTERRUPT_WORKITEM

Definition at line 153 of file wdfinterrupt.h.

◆ PFN_WDFINTERRUPTGETDEVICE

typedef WDFAPI WDFDEVICE(STDCALL * PFN_WDFINTERRUPTGETDEVICE) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)

Definition at line 712 of file wdfinterrupt.h.

◆ PFN_WDFINTERRUPTQUEUEDPCFORISR

typedef WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEDPCFORISR) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)

Definition at line 405 of file wdfinterrupt.h.

◆ PFN_WDFINTERRUPTQUEUEWORKITEMFORISR

typedef WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEWORKITEMFORISR) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)

Definition at line 428 of file wdfinterrupt.h.

◆ PFN_WDFINTERRUPTWDMGETINTERRUPT

typedef _Must_inspect_result_ WDFAPI PKINTERRUPT(STDCALL * PFN_WDFINTERRUPTWDMGETINTERRUPT) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)

Definition at line 593 of file wdfinterrupt.h.

◆ Policy

Definition at line 651 of file wdfinterrupt.h.

◆ PolicyAndGroup

Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFINTERRUPT _In_ PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
Definition: wdfinterrupt.h:688

Definition at line 688 of file wdfinterrupt.h.

◆ Priority

Initial value:
{
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
Definition: wdfinterrupt.h:651
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4061
PVOID NTAPI ExAllocatePoolWithTagPriority(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag, IN EX_POOL_PRIORITY Priority)
Definition: expool.c:2960
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1035
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3810

Definition at line 651 of file wdfinterrupt.h.

◆ PWDF_INTERRUPT_CONFIG

◆ PWDF_INTERRUPT_EXTENDED_POLICY

◆ PWDF_INTERRUPT_INFO

◆ PWDF_INTERRUPT_POLARITY

◆ PWDF_INTERRUPT_POLICY

◆ PWDF_INTERRUPT_PRIORITY

◆ TargetProcessorSet

Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY _In_ KAFFINITY TargetProcessorSet
Definition: wdfinterrupt.h:651
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
Definition: wdfinterrupt.h:651
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
Definition: wdfinterrupt.h:651

Definition at line 651 of file wdfinterrupt.h.

◆ WDF_INTERRUPT_CONFIG

◆ WDF_INTERRUPT_EXTENDED_POLICY

◆ WDF_INTERRUPT_INFO

◆ WDF_INTERRUPT_POLARITY

◆ WDF_INTERRUPT_POLICY

◆ WDF_INTERRUPT_PRIORITY

Enumeration Type Documentation

◆ _WDF_INTERRUPT_POLARITY

Enumerator
WdfInterruptPolarityUnknown 
WdfInterruptActiveHigh 
WdfInterruptActiveLow 

Definition at line 50 of file wdfinterrupt.h.

50  {
WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITY WDF_INTERRUPT_POLARITY
WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITY * PWDF_INTERRUPT_POLARITY

◆ _WDF_INTERRUPT_POLICY

Enumerator
WdfIrqPolicyMachineDefault 
WdfIrqPolicyAllCloseProcessors 
WdfIrqPolicyOneCloseProcessor 
WdfIrqPolicyAllProcessorsInMachine 
WdfIrqPolicySpecifiedProcessors 
WdfIrqPolicySpreadMessagesAcrossAllProcessors 

Definition at line 56 of file wdfinterrupt.h.

◆ _WDF_INTERRUPT_PRIORITY

Enumerator
WdfIrqPriorityUndefined 
WdfIrqPriorityLow 
WdfIrqPriorityNormal 
WdfIrqPriorityHigh 

Definition at line 65 of file wdfinterrupt.h.

Function Documentation

◆ _Acquires_lock_()

_Must_inspect_result_ _Acquires_lock_ ( _Curr_  )

Definition at line 755 of file wdfinterrupt.h.

758 {
759  return ((PFN_WDFINTERRUPTTRYTOACQUIRELOCK) WdfFunctions[WdfInterruptTryToAcquireLockTableIndex])(WdfDriverGlobals, Interrupt);
760 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _Function_class_() [1/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_ISR  )

◆ _Function_class_() [2/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_SYNCHRONIZE  )

◆ _Function_class_() [3/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_DPC  )

◆ _Function_class_() [4/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_WORKITEM  )

◆ _Function_class_() [5/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_ENABLE  )

◆ _Function_class_() [6/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_DISABLE  )

◆ _IRQL_requires_max_() [1/3]

_Must_inspect_result_ _IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 776 of file wdfinterrupt.h.

783 {
785 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _IRQL_requires_max_() [2/3]

typedef _IRQL_requires_max_ ( DISPATCH_LEVEL 1)

Definition at line 494 of file wdfinterrupt.h.

503 {
505 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _IRQL_requires_max_() [3/3]

typedef _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 550 of file wdfinterrupt.h.

557 {
559 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _Post_satisfies_()

_Must_inspect_result_ _Post_satisfies_ ( return  = = 1 || return == 0)
pure virtual

◆ WDF_INTERRUPT_CONFIG_INIT()

FORCEINLINE VOID WDF_INTERRUPT_CONFIG_INIT ( _Out_ PWDF_INTERRUPT_CONFIG  Configuration,
_In_ PFN_WDF_INTERRUPT_ISR  EvtInterruptIsr,
_In_opt_ PFN_WDF_INTERRUPT_DPC  EvtInterruptDpc 
)

Definition at line 271 of file wdfinterrupt.h.

276 {
278 
279  Configuration->Size = sizeof(WDF_INTERRUPT_CONFIG);
280 
281  Configuration->ShareVector = WdfUseDefault;
282 
283  Configuration->EvtInterruptIsr = EvtInterruptIsr;
284  Configuration->EvtInterruptDpc = EvtInterruptDpc;
285 
286  Configuration->ReportInactiveOnPowerDown = WdfUseDefault;
287 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
Definition: wdfinterrupt.h:372
struct _WDF_INTERRUPT_CONFIG WDF_INTERRUPT_CONFIG
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by if().

◆ WDF_INTERRUPT_EXTENDED_POLICY_INIT()

FORCEINLINE VOID WDF_INTERRUPT_EXTENDED_POLICY_INIT ( _Out_ PWDF_INTERRUPT_EXTENDED_POLICY  ExtendedPolicy)

Definition at line 349 of file wdfinterrupt.h.

352 {
353  RtlZeroMemory(ExtendedPolicy, sizeof(WDF_INTERRUPT_EXTENDED_POLICY));
354  ExtendedPolicy->Size = sizeof(WDF_INTERRUPT_EXTENDED_POLICY);
355  ExtendedPolicy->Policy = WdfIrqPolicyMachineDefault;
356  ExtendedPolicy->Priority = WdfIrqPriorityUndefined;
357 }
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
struct _WDF_INTERRUPT_EXTENDED_POLICY WDF_INTERRUPT_EXTENDED_POLICY

◆ WDF_INTERRUPT_INFO_INIT()

FORCEINLINE VOID WDF_INTERRUPT_INFO_INIT ( _Out_ PWDF_INTERRUPT_INFO  Info)

Definition at line 325 of file wdfinterrupt.h.

328 {
330  Info->Size = sizeof(WDF_INTERRUPT_INFO);
331 }
struct _WDF_INTERRUPT_INFO WDF_INTERRUPT_INFO
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by FxInterrupt::FxInterrupt(), and FxInterrupt::RevokeResources().

◆ WdfInterruptGetDevice()

FORCEINLINE WDFDEVICE WdfInterruptGetDevice ( _In_ WDFINTERRUPT  Interrupt)

Definition at line 721 of file wdfinterrupt.h.

725 {
727 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
WDFAPI WDFDEVICE(STDCALL * PFN_WDFINTERRUPTGETDEVICE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:712

◆ WdfInterruptQueueDpcForIsr()

FORCEINLINE BOOLEAN WdfInterruptQueueDpcForIsr ( _In_ WDFINTERRUPT  Interrupt)

Definition at line 414 of file wdfinterrupt.h.

418 {
420 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEDPCFORISR)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:405

◆ WdfInterruptQueueWorkItemForIsr()

FORCEINLINE BOOLEAN WdfInterruptQueueWorkItemForIsr ( _In_ WDFINTERRUPT  Interrupt)

Definition at line 437 of file wdfinterrupt.h.

441 {
443 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEWORKITEMFORISR)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:428

◆ WdfInterruptWdmGetInterrupt()

_Must_inspect_result_ FORCEINLINE PKINTERRUPT WdfInterruptWdmGetInterrupt ( _In_ WDFINTERRUPT  Interrupt)

Definition at line 603 of file wdfinterrupt.h.

607 {
609 }
_Must_inspect_result_ WDFAPI PKINTERRUPT(STDCALL * PFN_WDFINTERRUPTWDMGETINTERRUPT)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:593
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals