Expand Minimize

EvtDmaEnablerSelfManagedIoStart function

[Applies to KMDF only]

A driver's EvtDmaEnablerSelfManagedIoStart event callback function starts a DMA device's self-managed I/O operations.

Syntax


EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START EvtDmaEnablerSelfManagedIoStart;

NTSTATUS EvtDmaEnablerSelfManagedIoStart(
  _In_  WDFDMAENABLER DmaEnabler
)
{ ... }

Parameters

DmaEnabler [in]

A handle to a DMA enabler object.

Return value

EvtDmaEnablerSelfManagedIoStart must return STATUS_SUCCESS or another status value for which NT_SUCCESS(status) equals TRUE, if it encounters no errors. Otherwise, this callback function must return a status value for which NT_SUCCESS(status) equals FALSE.

Remarks

To register an EvtDmaEnablerSelfManagedIoStart callback function, a function driver for a DMA device places the callback function's address in a WDF_DMA_ENABLER_CONFIG structure before the driver calls WdfDmaEnablerCreate.

For more information about the EvtDmaEnablerSelfManagedIoStart callback function, see Supporting Power Management for DMA Devices.

The EvtDmaEnablerSelfManagedIoStart callback function is called at IRQL = PASSIVE_LEVEL. You should not make this callback function pageable.

Examples

To define an EvtDmaEnablerSelfManagedIoStart callback function, you must first provide a function declaration that identifies the type of callback function you’re defining. Windows provides a set of callback function types for drivers. Declaring a function using the callback function types helps Code Analysis for Drivers, Static Driver Verifier (SDV), and other verification tools find errors, and it’s a requirement for writing drivers for the Windows operating system.

For example, to define an EvtDmaEnablerSelfManagedIoStart callback function that is named MyDmaEnablerSelfManagedIoStart, use the EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START type as shown in this code example:


EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START  MyDmaEnablerSelfManagedIoStart;

Then, implement your callback function as follows:


_Use_decl_annotations_
NTSTATUS
 MyDmaEnablerSelfManagedIoStart (
    WDFDMAENABLER  DmaEnabler
    )
  {...}

The EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START function type is defined in the WdfDmaEnabler.h header file. To more accurately identify errors when you run the code analysis tools, be sure to add the _Use_decl_annotations_ annotation to your function definition. The _Use_decl_annotations_ annotation ensures that the annotations that are applied to the EVT_WDF_DMA_ENABLER_SELFMANAGED_IO_START function type in the header file are used. For more information about the requirements for function declarations, see Declaring Functions by Using Function Role Types for KMDF Drivers. For information about _Use_decl_annotations_, see Annotating Function Behavior.

Requirements

Minimum KMDF version

1.0

Header

WdfDmaEnabler.h (include Wdf.h)

IRQL

PASSIVE_LEVEL (see Remarks section)

See also

EvtDmaEnablerSelfManagedIoStop
WDF_DMA_ENABLER_CONFIG
WdfDmaEnablerCreate

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft