ReactOS 0.4.16-dev-401-g45b008d
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.
 
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)
 
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.
 
_Must_inspect_result_ FORCEINLINE PKINTERRUPT WdfInterruptWdmGetInterrupt (_In_ WDFINTERRUPT Interrupt)
 
FORCEINLINE WDFDEVICE WdfInterruptGetDevice (_In_ 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_

Definition at line 489 of file wdfinterrupt.h.

◆ AssociatedDevice

typedef _In_ WDFDEVICE AssociatedDevice

Definition at line 172 of file wdfinterrupt.h.

◆ AssociatedObject

Definition at line 131 of file wdfinterrupt.h.

◆ Attributes

◆ Callback

◆ Configuration

◆ Context

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfInterruptSynchronizeTableIndex
Definition: wdffuncenum.h:168
_In_ WDFCONTEXT Context
Definition: wdfinterrupt.h:113
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
Definition: wdfinterrupt.h:458
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:379

Definition at line 112 of file wdfinterrupt.h.

◆ Device

typedef _Must_inspect_result_ _In_ WDFDEVICE Device

Definition at line 372 of file wdfinterrupt.h.

◆ Info

Initial value:
{
@ WdfInterruptGetInfoTableIndex
Definition: wdffuncenum.h:174
_In_ WDFINTERRUPT _Out_ PWDF_INTERRUPT_INFO Info
Definition: wdfinterrupt.h:625

Definition at line 624 of file wdfinterrupt.h.

◆ Interrupt

_In_ WDFINTERRUPT Interrupt
Initial value:
{
@ WdfInterruptCreateTableIndex
Definition: wdffuncenum.h:166
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: wdfinterrupt.h:376
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfinterrupt.h:372
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
Definition: wdfinterrupt.h:374

Definition at line 378 of file wdfinterrupt.h.

◆ MessageID

typedef _In_ ULONG MessageID

Definition at line 91 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 711 of file wdfinterrupt.h.

◆ PFN_WDFINTERRUPTQUEUEDPCFORISR

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

Definition at line 404 of file wdfinterrupt.h.

◆ PFN_WDFINTERRUPTQUEUEWORKITEMFORISR

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

Definition at line 427 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 592 of file wdfinterrupt.h.

◆ Policy

Definition at line 653 of file wdfinterrupt.h.

◆ PolicyAndGroup

Initial value:
{
@ WdfInterruptSetExtendedPolicyTableIndex
Definition: wdffuncenum.h:414
_In_ WDFINTERRUPT _In_ PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
Definition: wdfinterrupt.h:691

Definition at line 690 of file wdfinterrupt.h.

◆ Priority

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

Definition at line 655 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:
{
@ WdfInterruptSetPolicyTableIndex
Definition: wdffuncenum.h:175
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY _In_ KAFFINITY TargetProcessorSet
Definition: wdfinterrupt.h:658
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
Definition: wdfinterrupt.h:653

Definition at line 657 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 * PWDF_INTERRUPT_POLARITY
@ WdfInterruptPolarityUnknown
Definition: wdfinterrupt.h:51
@ WdfInterruptActiveHigh
Definition: wdfinterrupt.h:52
@ WdfInterruptActiveLow
Definition: wdfinterrupt.h:53
WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITY WDF_INTERRUPT_POLARITY

◆ _WDF_INTERRUPT_POLICY

Enumerator
WdfIrqPolicyMachineDefault 
WdfIrqPolicyAllCloseProcessors 
WdfIrqPolicyOneCloseProcessor 
WdfIrqPolicyAllProcessorsInMachine 
WdfIrqPolicySpecifiedProcessors 
WdfIrqPolicySpreadMessagesAcrossAllProcessors 

Definition at line 56 of file wdfinterrupt.h.

56 {
enum _WDF_INTERRUPT_POLICY WDF_INTERRUPT_POLICY
enum _WDF_INTERRUPT_POLICY * PWDF_INTERRUPT_POLICY
@ WdfIrqPolicyOneCloseProcessor
Definition: wdfinterrupt.h:59
@ WdfIrqPolicyAllCloseProcessors
Definition: wdfinterrupt.h:58
@ WdfIrqPolicyAllProcessorsInMachine
Definition: wdfinterrupt.h:60
@ WdfIrqPolicyMachineDefault
Definition: wdfinterrupt.h:57
@ WdfIrqPolicySpecifiedProcessors
Definition: wdfinterrupt.h:61
@ WdfIrqPolicySpreadMessagesAcrossAllProcessors
Definition: wdfinterrupt.h:62

◆ _WDF_INTERRUPT_PRIORITY

Enumerator
WdfIrqPriorityUndefined 
WdfIrqPriorityLow 
WdfIrqPriorityNormal 
WdfIrqPriorityHigh 

Definition at line 65 of file wdfinterrupt.h.

65 {
@ WdfIrqPriorityHigh
Definition: wdfinterrupt.h:69
@ WdfIrqPriorityUndefined
Definition: wdfinterrupt.h:66
@ WdfIrqPriorityNormal
Definition: wdfinterrupt.h:68
@ WdfIrqPriorityLow
Definition: wdfinterrupt.h:67
enum _WDF_INTERRUPT_PRIORITY WDF_INTERRUPT_PRIORITY
enum _WDF_INTERRUPT_PRIORITY * PWDF_INTERRUPT_PRIORITY

Function Documentation

◆ _Function_class_() [1/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_DISABLE  )

◆ _Function_class_() [2/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_DPC  )

◆ _Function_class_() [3/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_ENABLE  )

◆ _Function_class_() [4/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_ISR  )

◆ _Function_class_() [5/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_SYNCHRONIZE  )

◆ _Function_class_() [6/6]

typedef _Function_class_ ( EVT_WDF_INTERRUPT_WORKITEM  )

◆ _IRQL_requires_max_() [1/2]

typedef _IRQL_requires_max_ ( DISPATCH_LEVEL 1)

Definition at line 494 of file wdfinterrupt.h.

503{
505}
@ WdfInterruptAcquireLockTableIndex
Definition: wdffuncenum.h:169

◆ _IRQL_requires_max_() [2/2]

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}
@ WdfInterruptEnableTableIndex
Definition: wdffuncenum.h:171

◆ 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}
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
struct _WDF_INTERRUPT_CONFIG WDF_INTERRUPT_CONFIG
@ WdfUseDefault
Definition: wdftypes.h:89

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}
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}
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690
struct _WDF_INTERRUPT_INFO WDF_INTERRUPT_INFO

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

◆ WdfInterruptGetDevice()

FORCEINLINE WDFDEVICE WdfInterruptGetDevice ( _In_ WDFINTERRUPT  Interrupt)

Definition at line 721 of file wdfinterrupt.h.

725{
727}
@ WdfInterruptGetDeviceTableIndex
Definition: wdffuncenum.h:176
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}
@ WdfInterruptQueueDpcForIsrTableIndex
Definition: wdffuncenum.h:167
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}
@ WdfInterruptQueueWorkItemForIsrTableIndex
Definition: wdffuncenum.h:441
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}
@ WdfInterruptWdmGetInterruptTableIndex
Definition: wdffuncenum.h:173
_Must_inspect_result_ WDFAPI PKINTERRUPT(STDCALL * PFN_WDFINTERRUPTWDMGETINTERRUPT)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
Definition: wdfinterrupt.h:593