Compartir a través de


Función HalSetBusDataByOffset (ntddk.h)

Advertencia

se proporcionan halGetBusDataByOffset y HalSetBusDataByOffset, pero solo se deben usar si no se pueden usar los métodos recomendados en acceso 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 del 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 incluye 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 valor de SlotNumber y el número de función especificados. El desplazamiento 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 256 bytes 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 el búfer.

Valor devuelto

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

Observaciones

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 accede a ningún dato fuera del intervalo solicitado.

Requisitos

Requisito Valor
encabezado de ntddk.h (incluya Ntddk.h)

Consulte también

BUS_DATA_TYPE

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG