ReactOS  0.4.15-dev-3439-g2693a26
wdfdmaenabler.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_DMA_ENABLER_CONFIG
 
struct  _WDF_DMA_SYSTEM_PROFILE_CONFIG
 

Macros

#define WDF_EXTERN_C
 
#define WDF_EXTERN_C_START
 
#define WDF_EXTERN_C_END
 
#define WDF_DMA_ENABLER_UNLIMITED_FRAGMENTS   ((ULONG) -1)
 

Typedefs

typedef WDF_EXTERN_C_START enum _WDF_DMA_PROFILE WDF_DMA_PROFILE
 
typedef enum _WDF_DMA_DIRECTION WDF_DMA_DIRECTION
 
typedef EVT_WDF_DMA_ENABLER_FILL * PFN_WDF_DMA_ENABLER_FILL
 
typedef EVT_WDF_DMA_ENABLER_FLUSH * PFN_WDF_DMA_ENABLER_FLUSH
 
typedef EVT_WDF_DMA_ENABLER_ENABLE * PFN_WDF_DMA_ENABLER_ENABLE
 
typedef EVT_WDF_DMA_ENABLER_DISABLE * PFN_WDF_DMA_ENABLER_DISABLE
 
typedef EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START * PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START
 
typedef EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP * PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP
 
typedef enum _WDF_DMA_ENABLER_CONFIG_FLAGS WDF_DMA_ENABLER_CONFIG_FLAGS
 
typedef struct _WDF_DMA_ENABLER_CONFIG WDF_DMA_ENABLER_CONFIG
 
typedef struct _WDF_DMA_ENABLER_CONFIGPWDF_DMA_ENABLER_CONFIG
 
typedef struct _WDF_DMA_SYSTEM_PROFILE_CONFIG WDF_DMA_SYSTEM_PROFILE_CONFIG
 
typedef struct _WDF_DMA_SYSTEM_PROFILE_CONFIGPWDF_DMA_SYSTEM_PROFILE_CONFIG
 
typedef _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFDMAENABLERCREATE) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
typedef _Must_inspect_result_ _In_ WDFDEVICE Device
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DMA_ENABLER_CONFIG Config
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DMA_ENABLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DMA_ENABLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDMAENABLER * DmaEnablerHandle
 
typedef _Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
 
typedef _Must_inspect_result_ _In_ WDFDMAENABLER _In_ PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig
 
typedef _Must_inspect_result_ _In_ WDFDMAENABLER _In_ PWDF_DMA_SYSTEM_PROFILE_CONFIG _In_ WDF_DMA_DIRECTION ConfigDirection
 
typedef _In_ WDFDMAENABLER _In_ _When_(MaximumFragments==0, __drv_reportError(MaximumFragments cannot be zero)) size_t MaximumFragments)
 
typedef _In_ WDFDMAENABLER _In_ WDF_DMA_DIRECTION DmaDirection
 

Enumerations

enum  _WDF_DMA_PROFILE {
  WdfDmaProfileInvalid = 0, WdfDmaProfilePacket, WdfDmaProfileScatterGather, WdfDmaProfilePacket64,
  WdfDmaProfileScatterGather64, WdfDmaProfileScatterGatherDuplex, WdfDmaProfileScatterGather64Duplex, WdfDmaProfileSystem,
  WdfDmaProfileSystemDuplex
}
 
enum  _WDF_DMA_DIRECTION { WdfDmaDirectionReadFromDevice = FALSE, WdfDmaDirectionWriteToDevice = TRUE }
 
enum  _WDF_DMA_ENABLER_CONFIG_FLAGS { WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION = 0x00000001 }
 

Functions

typedef _Function_class_ (EVT_WDF_DMA_ENABLER_FILL) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DMA_ENABLER_FILL(_In_ WDFDMAENABLER DmaEnabler)
 
typedef _Function_class_ (EVT_WDF_DMA_ENABLER_FLUSH) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DMA_ENABLER_FLUSH(_In_ WDFDMAENABLER DmaEnabler)
 
typedef _Function_class_ (EVT_WDF_DMA_ENABLER_ENABLE) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DMA_ENABLER_ENABLE(_In_ WDFDMAENABLER DmaEnabler)
 
typedef _Function_class_ (EVT_WDF_DMA_ENABLER_DISABLE) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DMA_ENABLER_DISABLE(_In_ WDFDMAENABLER DmaEnabler)
 
typedef _Function_class_ (EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START(_In_ WDFDMAENABLER DmaEnabler)
 
typedef _Function_class_ (EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP(_In_ WDFDMAENABLER DmaEnabler)
 
FORCEINLINE VOID WDF_DMA_ENABLER_CONFIG_INIT (_Out_ PWDF_DMA_ENABLER_CONFIG Config, _In_ WDF_DMA_PROFILE Profile, _In_ size_t MaximumLength)
 
FORCEINLINE VOID WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT (_Out_ PWDF_DMA_SYSTEM_PROFILE_CONFIG DmaConfig, _In_ PHYSICAL_ADDRESS Address, _In_ DMA_WIDTH DmaWidth, _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor)
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) FORCEINLINE NTSTATUS WdfDmaEnablerCreate(_In_ WDFDEVICE Device
 Queries information details about a security descriptor. More...
 
typedef _IRQL_requires_max_ (DISPATCH_LEVEL) WDFAPI size_t(STDCALL *PFN_WDFDMAENABLERGETMAXIMUMLENGTH)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
_In_ _When_ (MaximumFragments==0, __drv_reportError(MaximumFragments cannot be zero)) size_t MaximumFragments)
 

Macro Definition Documentation

◆ WDF_DMA_ENABLER_UNLIMITED_FRAGMENTS

#define WDF_DMA_ENABLER_UNLIMITED_FRAGMENTS   ((ULONG) -1)

Definition at line 153 of file wdfdmaenabler.h.

◆ WDF_EXTERN_C

#define WDF_EXTERN_C

Definition at line 40 of file wdfdmaenabler.h.

◆ WDF_EXTERN_C_END

#define WDF_EXTERN_C_END

Definition at line 42 of file wdfdmaenabler.h.

◆ WDF_EXTERN_C_START

#define WDF_EXTERN_C_START

Definition at line 41 of file wdfdmaenabler.h.

Typedef Documentation

◆ _IRQL_requires_max_

typedef _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFDMAENABLERCONFIGURESYSTEMPROFILE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals

Definition at line 299 of file wdfdmaenabler.h.

◆ _When_

typedef _In_ WDFDMAENABLER _In_ _When_(MaximumFragments==0, __drv_reportError(MaximumFragments cannot be zero)) size_t MaximumFragments)

Definition at line 431 of file wdfdmaenabler.h.

◆ Attributes

◆ Config

◆ ConfigDirection

Initial value:
{
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ PWDF_DMA_SYSTEM_PROFILE_CONFIG _In_ WDF_DMA_DIRECTION ConfigDirection

Definition at line 345 of file wdfdmaenabler.h.

◆ Device

typedef _Must_inspect_result_ _In_ WDFDEVICE Device

Definition at line 306 of file wdfdmaenabler.h.

◆ DmaDirection

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
_In_ WDFDMAENABLER _In_ WDF_DMA_DIRECTION DmaDirection
PWDF_DRIVER_GLOBALS WdfDriverGlobals

Definition at line 460 of file wdfdmaenabler.h.

◆ DmaEnabler

typedef _In_ WDFDMAENABLER DmaEnabler

Definition at line 345 of file wdfdmaenabler.h.

◆ DmaEnablerHandle

Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DMA_ENABLER_CONFIG Config
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DMA_ENABLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DMA_ENABLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDMAENABLER * DmaEnablerHandle

Definition at line 306 of file wdfdmaenabler.h.

◆ PFN_WDF_DMA_ENABLER_DISABLE

typedef EVT_WDF_DMA_ENABLER_DISABLE* PFN_WDF_DMA_ENABLER_DISABLE

Definition at line 124 of file wdfdmaenabler.h.

◆ PFN_WDF_DMA_ENABLER_ENABLE

typedef EVT_WDF_DMA_ENABLER_ENABLE* PFN_WDF_DMA_ENABLER_ENABLE

Definition at line 111 of file wdfdmaenabler.h.

◆ PFN_WDF_DMA_ENABLER_FILL

typedef EVT_WDF_DMA_ENABLER_FILL* PFN_WDF_DMA_ENABLER_FILL

Definition at line 85 of file wdfdmaenabler.h.

◆ PFN_WDF_DMA_ENABLER_FLUSH

typedef EVT_WDF_DMA_ENABLER_FLUSH* PFN_WDF_DMA_ENABLER_FLUSH

Definition at line 98 of file wdfdmaenabler.h.

◆ PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START

typedef EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START* PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START

Definition at line 137 of file wdfdmaenabler.h.

◆ PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP

typedef EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP* PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP

Definition at line 150 of file wdfdmaenabler.h.

◆ ProfileConfig

◆ PWDF_DMA_ENABLER_CONFIG

◆ PWDF_DMA_SYSTEM_PROFILE_CONFIG

◆ WDF_DMA_DIRECTION

◆ WDF_DMA_ENABLER_CONFIG

◆ WDF_DMA_ENABLER_CONFIG_FLAGS

◆ WDF_DMA_PROFILE

◆ WDF_DMA_SYSTEM_PROFILE_CONFIG

Enumeration Type Documentation

◆ _WDF_DMA_DIRECTION

Enumerator
WdfDmaDirectionReadFromDevice 
WdfDmaDirectionWriteToDevice 

Definition at line 64 of file wdfdmaenabler.h.

64  {
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
enum _WDF_DMA_DIRECTION WDF_DMA_DIRECTION

◆ _WDF_DMA_ENABLER_CONFIG_FLAGS

Enumerator
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION 

Definition at line 155 of file wdfdmaenabler.h.

155  {
156  //
157  // This flag only applies to the following DMA profiles:
158  // WdfDmaProfileScatterGather,
159  // WdfDmaProfileScatterGather64,
160  // WdfDmaProfileScatterGatherDuplex and
161  // WdfDmaProfileScatterGather64Duplex
162  //
163  // When this flag is not set and the profile is one of the above, WDF
164  // creates a SGLookasideList used by this DMA adapter's transaction
165  // objects. The SGLookasideList is initialized to allow the max specified
166  // transfer length. When the transaction is executed, WDF calls the WDM
167  // DMA's BuildScatterGatherList entry function. Forward progress drivers
168  // must use this option. This is the default option.
169  //
170  // When this flag is set and the profile is one of the above, WDF
171  // does not create a SGLookasideList. When the transaction is executed,
172  // WDF calls the WDM DMA's GetScatterGatherList entry function.
173  //
enum _WDF_DMA_ENABLER_CONFIG_FLAGS WDF_DMA_ENABLER_CONFIG_FLAGS

◆ _WDF_DMA_PROFILE

Enumerator
WdfDmaProfileInvalid 
WdfDmaProfilePacket 
WdfDmaProfileScatterGather 
WdfDmaProfilePacket64 
WdfDmaProfileScatterGather64 
WdfDmaProfileScatterGatherDuplex 
WdfDmaProfileScatterGather64Duplex 
WdfDmaProfileSystem 
WdfDmaProfileSystemDuplex 

Definition at line 52 of file wdfdmaenabler.h.

Function Documentation

◆ _Function_class_() [1/6]

typedef _Function_class_ ( EVT_WDF_DMA_ENABLER_FILL  )

◆ _Function_class_() [2/6]

typedef _Function_class_ ( EVT_WDF_DMA_ENABLER_FLUSH  )

◆ _Function_class_() [3/6]

typedef _Function_class_ ( EVT_WDF_DMA_ENABLER_ENABLE  )

◆ _Function_class_() [4/6]

typedef _Function_class_ ( EVT_WDF_DMA_ENABLER_DISABLE  )

◆ _Function_class_() [5/6]

typedef _Function_class_ ( EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START  )

◆ _Function_class_() [6/6]

typedef _Function_class_ ( EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP  )

◆ _IRQL_requires_max_() [1/2]

_Must_inspect_result_ _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 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1872
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
#define FILE_READ_DATA
Definition: nt_native.h:628
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
Status
Definition: gdiplustypes.h:24
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1872
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1872
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2931
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1872
#define NULL
Definition: types.h:112
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1872
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1872
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ _IRQL_requires_max_() [2/2]

typedef _IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 382 of file wdfdmaenabler.h.

389 {
390  return ((PFN_WDFDMAENABLERGETMAXIMUMLENGTH) WdfFunctions[WdfDmaEnablerGetMaximumLengthTableIndex])(WdfDriverGlobals, DmaEnabler);
391 }
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _When_()

_In_ _When_ ( MaximumFragments  = = 0,
__drv_reportError(MaximumFragments cannot be zero  
)

Definition at line 442 of file wdfdmaenabler.h.

445 {
446  ((PFN_WDFDMAENABLERSETMAXIMUMSCATTERGATHERELEMENTS) WdfFunctions[WdfDmaEnablerSetMaximumScatterGatherElementsTableIndex])(WdfDriverGlobals, DmaEnabler, MaximumFragments);
447 }
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ WDF_DMA_ENABLER_CONFIG_INIT()

FORCEINLINE VOID WDF_DMA_ENABLER_CONFIG_INIT ( _Out_ PWDF_DMA_ENABLER_CONFIG  Config,
_In_ WDF_DMA_PROFILE  Profile,
_In_ size_t  MaximumLength 
)

Definition at line 224 of file wdfdmaenabler.h.

229 {
231 
232  Config->Size = sizeof(WDF_DMA_ENABLER_CONFIG);
233  Config->Profile = Profile;
234  Config->MaximumLength = MaximumLength;
235 }
struct _WDF_DMA_ENABLER_CONFIG WDF_DMA_ENABLER_CONFIG
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:474
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by if().

◆ WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT()

FORCEINLINE VOID WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT ( _Out_ PWDF_DMA_SYSTEM_PROFILE_CONFIG  DmaConfig,
_In_ PHYSICAL_ADDRESS  Address,
_In_ DMA_WIDTH  DmaWidth,
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  DmaDescriptor 
)

Definition at line 279 of file wdfdmaenabler.h.

285 {
286  RtlZeroMemory(DmaConfig, sizeof(WDF_DMA_SYSTEM_PROFILE_CONFIG));
287 
288  DmaConfig->Size = sizeof(WDF_DMA_SYSTEM_PROFILE_CONFIG);
289  DmaConfig->DeviceAddress = Address;
290  DmaConfig->DmaWidth = DmaWidth;
291  DmaConfig->DmaDescriptor = DmaDescriptor;
292 }
struct _WDF_DMA_SYSTEM_PROFILE_CONFIG WDF_DMA_SYSTEM_PROFILE_CONFIG
static WCHAR Address[46]
Definition: ping.c:68
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262