Condividi tramite


Funzione HalSetBusDataByOffset (ntddk.h)

Avviso

HalGetBusDataByOffset e HalSetBusDataByOffset sono disponibili per la compatibilità con le versioni precedenti, ma devono essere usati solo se i metodi consigliati in Accesso allo spazio di configurazione del dispositivo non possono essere usati.

Questa funzione imposta i dati di configurazione del bus per un dispositivo in un bus di I/O configurabile dinamicamente con un'interfaccia standard pubblicata.

Sintassi

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

Parametri

[in] BusDataType

Dati del bus da impostare. Questo valore può essere PCIConfiguration. Il limite superiore sui tipi supportati è sempre MaximumBusDataType.

[in] BusNumber

Numero assegnato in base zero e al sistema del bus nei sistemi con diversi autobus dello stesso busDataType. Questo argomento contiene anche il numero di segmento. Per specificare il numero di segmento, usare (Segmento << 8) | BusNumber

[in] SlotNumber

Numero di slot logico o posizione del dispositivo. Se si specifica PCIConfiguration come BusDataType, questo valore viene specificato come valore PCI_SLOT_NUMBER, ovvero i numeri di slot e funzione combinati.

[in] Buffer

Puntatore a un buffer fornito dal chiamante per informazioni di configurazione specifiche di BusDataType.

Se si specifica PCIConfiguration, il buffer contiene le informazioni sullo spazio di configurazione PCI per il numero di slot specificato e il numero di funzione. L'offset e la lunghezza specificati determinano la quantità di informazioni da fornire. Alcuni membri dello spazio di configurazione PCI hanno valori di sola lettura Il chiamante è responsabile della conservazione dei valori forniti dal sistema dei membri di sola lettura. Si noti che per un dispositivo PCI Type-1, HalSetBusDataByOffset impedisce le scritture ai registri all'interno dell'intestazione comune (primi 256 byte dello spazio di configurazione).

[in] Offset

Offset di byte nella struttura PCI_COMMON_CONFIG in cui iniziano i valori di configurazione forniti dal chiamante. I chiamanti possono usare la costante definita dal sistema PCI_COMMON_HDR_LENGTH per specificare l'area specifica del dispositivo di PCI_COMMON_CONFIG.

[in] Length

Numero di byte nel buffer.

Valore restituito

Il valore restituito è la lunghezza effettiva scritta nello spazio di configurazione.

Commenti

Un driver può chiamare questa funzione o HalSetBusData se circostanze insolite o la natura del dispositivo richiede una chiamata di questo tipo. Ad esempio, un driver potrebbe chiamare una di queste funzioni per cancellare un bit nel registro di stato PCI se il dispositivo segnala un interruzione di destinazione durante l'inizializzazione. In genere, il codice hardware o di avvio configura il dispositivo in modo appropriato.

Quando si accede all'area specifica del dispositivo dello spazio di configurazione PCI, HalSetBusDataByOffset garantisce che questa funzione non legge mai o scrive dati all'esterno dell'intervallo specificato dall'offset di input e lunghezza e anche se la lunghezza di input è esattamente un byte o una parola a due byte, questa funzione non accede mai ai dati all'esterno dell'intervallo richiesto.

Requisiti

Requisito Valore
Intestazione ntddk.h (include Ntddk.h)

Vedi anche

BUS_DATA_TYPE

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG