SpbDeviceInitialize function (spbcx.h)

The SpbDeviceInitialize method completes the initialization of the SPB controller driver after this driver creates the associated device object.

Syntax

NTSTATUS SpbDeviceInitialize(
  [in] WDFDEVICE              FxDevice,
  [in] PSPB_CONTROLLER_CONFIG Config
);

Parameters

[in] FxDevice

A WDFDEVICE handle to the device object that represents the SPB controller.

[in] Config

A pointer to a SPB_CONTROLLER_CONFIG structure that contains the device configuration information for the SPB controller driver. This structure must have been initialized by the SPB_CONTROLLER_CONFIG_INIT function.

Return value

SpbDeviceInitialize returns STATUS_SUCCESS if it succeeds. Otherwise, it returns an appropriate NTSTATUS error code.

Remarks

Your SPB controller driver calls this method to register its event callback functions with the SPB framework extension (SpbCx) and to specify the transfer mode to use for the controller's I/O queue. SpbDeviceInitialize creates all of the controller's internal data structures, including the I/O queue.

The SPB controller driver must call this method before it commits the device object—that is, before it returns from the EvtDriverDeviceAdd callback or adds the PDO to the controller's child list. The child list represents the devices that are attached to the bus. For more information, see Enumerating the Devices on a Bus.

After SpbDeviceInitialize returns, the controller is ready to process I/O requests, but the SPB controller driver can, as needed, continue to configure the controller settings before it commits the device object.

If the structure pointed to by Config is not filled out correctly, Driver Verifier will raise an error. For more information about the requirements for the Config parameter, see SPB_CONTROLLER_CONFIG.

Requirements

Requirement Value
Minimum supported client Available starting with Windows 8.
Target Platform Universal
Header spbcx.h
Library Spbcxstubs.lib
IRQL PASSIVE_LEVEL

See also

EvtChildListCreateDevice

EvtDriverDeviceAdd

SPB_CONTROLLER_CONFIG

SPB_CONTROLLER_CONFIG_INIT