Compartir a través de


Función HalSetBusDataByOffset (ntddk.h)

Advertencia

HalGetBusDataByOffset y HalSetBusDataByOffset se proporcionan por compatibilidad con versiones anteriores, pero solo se deben usar si no se pueden usar los métodos recomendados en Acceder al espacio de configuración del dispositivo .

Esta función establece los datos de configuración de bus para un dispositivo en un bus de E/S configurable dinámicamente con una interfaz estándar publicada.

Sintaxis

NTHALAPI ULONG HalSetBusDataByOffset(
  [in] BUS_DATA_TYPE BusDataType,
  [in] ULONG         BusNumber,
  [in] ULONG         SlotNumber,
  [in] PVOID         Buffer,
  [in] ULONG         Offset,
  [in] ULONG         Length
);

Parámetros

[in] BusDataType

Datos de bus que se van a establecer. Este valor puede ser PCIConfiguration. El límite superior de los tipos admitidos siempre es MaximumBusDataType.

[in] BusNumber

Número asignado por el sistema y basado en cero del bus en sistemas con varios buses del mismo BusDataType. Este argumento también lleva el número de segmento. Para especificar el número de segmento, use (Segmento << 8) | BusNumber

[in] SlotNumber

Número de ranura lógica o ubicación del dispositivo. Si especifica PCIConfiguration como BusDataType, este valor se especifica como un valor de PCI_SLOT_NUMBER, que es la ranura y los números de función combinados.

[in] Buffer

Puntero a un búfer proporcionado por el autor de la llamada para obtener información de configuración específica de BusDataType.

Si especifica PCIConfiguration, el búfer contiene la información del espacio de configuración de PCI para el número de función y slotNumber especificados. El offset y la longitud especificados determinan la cantidad de información que se debe proporcionar. Algunos miembros del espacio de configuración pci tienen valores de solo lectura El autor de la llamada es responsable de conservar los valores proporcionados por el sistema de los miembros de solo lectura. Tenga en cuenta que para un dispositivo PCI de tipo 1, HalSetBusDataByOffset impide que las escrituras se registren dentro del encabezado común (los primeros 256bytes del espacio de configuración).

[in] Offset

Desplazamiento de bytes en la estructura PCI_COMMON_CONFIG donde comienzan los valores de configuración proporcionados por el autor de la llamada. Los autores de llamadas pueden usar la constante definida por el sistema PCI_COMMON_HDR_LENGTH para especificar el área específica del dispositivo de PCI_COMMON_CONFIG.

[in] Length

Número de bytes en buffer.

Valor devuelto

El valor devuelto es la longitud real escrita en el espacio de configuración.

Comentarios

Un controlador puede llamar a esta función o HalSetBusData si circunstancias inusuales o la naturaleza de su dispositivo requiere dicha llamada. Por ejemplo, un controlador podría llamar a cualquiera de estas funciones para borrar un poco en el registro de estado PCI si su dispositivo señala una anulación de destino durante la inicialización. Normalmente, el código de inicio o hardware configura el dispositivo de forma adecuada.

Al acceder al área específica del dispositivo del espacio de configuración PCI, HalSetBusDataByOffset garantiza que esta función nunca lee o escribe datos fuera del intervalo especificado por el desplazamiento y la longitud de entrada e incluso si la longitud de entrada es exactamente un byte o una palabra de dos bytes, esta función nunca obtiene acceso a ningún dato fuera del intervalo solicitado.

Requisitos

Requisito Valor
Header ntddk.h (incluya Ntddk.h)

Consulte también

BUS_DATA_TYPE

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG