GET_SET_DEVICE_DATA fonction de rappel (wdm.h)

La routine GetBusData lit les données de l’espace de configuration de l’appareil.

Syntaxe

GET_SET_DEVICE_DATA GetSetDeviceData;

ULONG GetSetDeviceData(
  [in] PVOID Context,
  [in] ULONG DataType,
  [in] PVOID Buffer,
  [in] ULONG Offset,
  [in] ULONG Length
)
{...}

Paramètres

[in] Context

Pointeur vers des informations de contexte spécifiques à l’interface. L’appelant transmet la valeur qui est passée en tant que membre context de la structure BUS_INTERFACE_STANDARD pour l’interface.

[in] DataType

Type de données de bus à lire. Pour plus d’informations, consultez la discussion du paramètre WhichSpace dans IRP_MN_READ_CONFIG.

[in] Buffer

Pointeur vers la mémoire tampon qui contient les informations de configuration à lire à partir de l’espace de configuration de l’appareil.

[in] Offset

Décalage dans les données d’appareil spécifiques au bus à l’endroit où cette opération de lecture commence. Par exemple, si le paramètre DataType est PCI_WHICHSPACE_CONFIG, la valeur du paramètre Offset est le décalage dans l’espace de configuration PCI.

[in] Length

Longueur, en octets, des données à lire.

Valeur retournée

La routine GetBusData retourne la longueur, en octets, des données de configuration lues après une opération de lecture réussie. Si l’opération de lecture échoue, la valeur zéro est retournée.

Remarques

Selon la valeur du paramètre DataType , la routine GetBusData peut être appelée uniquement à partir des niveaux de demande d’interruption (IRQL) définis dans le tableau suivant.

Valeur DataType IRQL
PCI_WHICHSPACE_CONFIG <= DIRQL
PCI_WHICHSPACE_ROM <= APC_LEVEL
PCCARD_COMMON_MEMORY

PCCARD_COMMON_MEMORY_INDIRECT

<= DISPATCH_LEVEL
PCCARD_ATTRIBUTE_MEMORY

PCCARD_ATTRIBUTE_MEMORY_INDIRECT

<= DISPATCH_LEVEL
PCCARD_PCI_CONFIGURATION_SPACE <= DIRQL
 

Les remarques suivantes s’appliquent aux pilotes pour les fonctions virtuelles (VFs) PCI Express (PCIe) sur les appareils qui prennent en charge l’interface de virtualisation d’E/S racine unique (SR-IOV) :

  • Les pilotes pour les machines virtuelles PCIe doivent appeler la routine GetBusData à l’adresse IRQL <= APC_LEVEL.
  • Pour lire les données de configuration PCI pour la VF à l’adresse IRQL = DISPATCH_LEVEL, le pilote doit émettre des demandes d’E/S de IRP_MN_READ_CONFIG.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (include Ntddk.h)
IRQL Consultez la section Notes.

Voir aussi

BUS_INTERFACE_STANDARD

IRP_MN_READ_CONFIG