SoundReportResourceUsage

NTSTATUS
    SoundReportResourceUsage(
        IN PDEVICE_OBJECT
DeviceObject,
        IN INTERFACE_TYPE
BusType,
        IN ULONG
BusNumber,
        IN PULONG
InterruptNumber OPTIONAL,
        IN KINTERRUPT_MODE
InterruptMode,
        IN BOOLEAN
InterruptShareDisposition,
        IN PULONG
DmaChannel OPTIONAL,
        IN PULONG
FirstIoPort OPTIONAL,
        IN ULONG
IoPortLength
        );

The SoundReportResourceUsage function reserves hardware resources for use by the specified device or driver. This function does not allow reservation of resources already reserved for another device or driver.

Parameters
DeviceObject
Pointer to either a DEVICE_OBJECT or DRIVER_OBJECT structure. Represents the device or driver for which resources will be reserved.
BusType
Type of bus the device is on. INTERFACE_TYPE is defined in ntddk.h.
BusNumber
Number of the bus the device is on.
InterruptNumber
Pointer to the interrupt number, or NULL if no interrupt.
InterruptMode
Interrupt mode (Latched or LevelSensitive). Ignored if InterruptNumber is NULL. KINTERRUPT_MODE is defined in ntddk.h.
InterruptShareDisposition
TRUE if interrupt can be shared, FALSE otherwise. Ignored if InterruptNumber is NULL.
DmaChannel
Pointer to the device’s DMA channel, or NULL if there is no DMA channel.
FirstIoPort
Pointer to the device’s first I/O port address, or NULL if there are no I/O ports.
IoPortLength
Number of bytes of I/O space the device uses, starting at FirstIoPort. Ignored if FirstIoPort is NULL.
Return Value

Returns one of the following values.

Value

Definition

STATUS_SUCCESS

Success.

STATUS_DEVICE_CONFIGURATION_ERROR

Resources already assigned.

STATUS_INSUFFICIENT_RESOURCES

Resources unavailable.

Comments

Before attempting to access device hardware, call SoundReportResourceUsage to ensure the resources you intend to use are not already assigned to another device.

You can associate resources with either the driver object or with one of the device objects created by SoundCreateDevice. If the driver supports multiple cards, you must associate resources with device objects.

Each time you call SoundReportResourceUsage for a particular device object or driver object, you override the resource reservation made with any previous call for the same object.

Typically, a driver acquires resources for each device in turn, and then calls SoundReportResourceUsage a final time to declare (to the rest of the system) all the resources used by the card instance.

To free reserved resources, call SoundFreeDevice.