Partager via


HalGetBusDataByOffset, fonction (ntddk.h)

Avertissement

HalGetBusDataByOffset et halSetBusDataByOffset sont fournis pour la compatibilité descendante, mais doivent être utilisées uniquement si les méthodes recommandées dans Accès à l’espace de configuration de l’appareil ne peuvent pas être utilisées.

Cette fonction récupère des informations, en commençant à l’offset, sur un emplacement ou une adresse sur un bus d’E/S.

Syntaxe

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

Paramètres

[in] BusDataType

Données de bus à récupérer. La limite supérieure sur les types de bus pris en charge est toujours MaximumBusDataType. Le seul BusDataType pris en charge est PCIConfiguration Tous les autres types sont déconseillés.

[in] BusNumber

Nombre de bus basé sur zéro et attribué par le système dans les systèmes avec plusieurs bus du même BusDataType. Cet argument porte également le numéro de segment. Pour spécifier le numéro de segment, utilisez (segment << 8) | BusNumber

[in] SlotNumber

Numéro d’emplacement logique ou emplacement de l’appareil. Si vous spécifiez PCIConfiguration comme BusDataType, cette valeur est une valeur PCI_SLOT_NUMBER, qui correspond aux numéros d’emplacement et de fonction combinés.

[in] Buffer

Pointeur vers une mémoire tampon fournie par l’appelant pour obtenir des informations de configuration spécifiques à BusDataType.

Si vous spécifiez PCIConfiguration, la mémoire tampon contient les informations d’espace de configuration PCI pour le numéro de fonction et le numéro de fonction spécifiés. Le décalage et la longueur spécifiés déterminent la quantité d’informations à fournir. Certains membres de l’espace de configuration PCI ont des valeurs en lecture seule Que l’appelant est responsable de la préservation des valeurs fournies par le système des membres en lecture seule. Notez que pour un appareil PCI Type-1, HalSetBusDataByOffset empêche les écritures d’enregistrer dans l’en-tête commun (les 256 premiers octets de l’espace de configuration).

[in] Offset

Décalage d’octet dans la structure PCI_COMMON_CONFIG pour laquelle les informations demandées doivent être retournées. Les appelants peuvent utiliser la constante définie par le système PCI_COMMON_HDR_LENGTH pour spécifier la zone spécifique à l’appareil de PCI_COMMON_CONFIG.

[in] Length

Nombre maximal d’octets dans la mémoire tampon.

Valeur de retour

La valeur de retour est la longueur réelle lue à partir de l’espace de configuration.

Remarques

Les pilotes de périphérique appellent cette fonction pendant l’initialisation pour localiser leurs appareils sur un bus d’E/S particulier. Vous pouvez utiliser les données de configuration spécifiques au bus retournées dans les appels ultérieurs à d’autres fonctions de configuration et d’initialisation, telles que HalTranslateBusAddress.

Lors de l’accès à la zone spécifique de l’appareil de l’espace de configuration PCI, HalGetBusDataByOffset garantit que cette fonction ne lit jamais ou écrit des données en dehors de la plage spécifiée par le décalage et la longueur d’entrée. Même si la longueur d’entrée est exactement un mot de 1 octet ou de 2 octets, cette fonction n’accède jamais à des données en dehors de la plage demandée.

Exigences

Exigence Valeur
d’en-tête ntddk.h (include Ntddk.h)

Voir aussi

BUS_DATA_TYPE

halGetBusData

HalSetBusDataByOffset

halSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG