GET_SET_DEVICE_DATA Rückruffunktion (wdm.h)
Die GetBusData-Routine liest Daten aus dem Konfigurationsbereich des Geräts.
Syntax
GET_SET_DEVICE_DATA GetSetDeviceData;
ULONG GetSetDeviceData(
[in] PVOID Context,
[in] ULONG DataType,
[in] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
)
{...}
Parameter
[in] Context
Ein Zeiger auf schnittstellenspezifische Kontextinformationen. Der Aufrufer übergibt den Wert, der als Kontextelement der BUS_INTERFACE_STANDARD-Struktur für die Schnittstelle übergeben wird.
[in] DataType
Der Typ der zu lesenden Busdaten. Weitere Informationen finden Sie in der Erläuterung des WhichSpace-Parameters in IRP_MN_READ_CONFIG.
[in] Buffer
Ein Zeiger auf den Puffer, der die Konfigurationsinformationen enthält, die aus dem Konfigurationsbereich des Geräts gelesen werden sollen.
[in] Offset
Der Offset in die busspezifischen Gerätedaten, an denen dieser Lesevorgang beginnt. Wenn der DataType-Parameter beispielsweise PCI_WHICHSPACE_CONFIG ist, ist der Offset-Parameterwert der Offset-Wert in den PCI-Konfigurationsbereich.
[in] Length
Die Länge der zu lesenden Daten in Bytes.
Rückgabewert
Die GetBusData-Routine gibt die Länge der Konfigurationsdaten in Bytes zurück, die nach einem erfolgreichen Lesevorgang gelesen werden. Wenn der Lesevorgang nicht erfolgreich ist, wird der Wert 0 zurückgegeben.
Hinweise
Abhängig vom Wert des DataType-Parameters kann die GetBusData-Routine nur von den interrupt request levels (IRQLs) aufgerufen werden, die in der folgenden Tabelle definiert sind.
DataType-Wert | 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 |
Die folgenden Hinweise gelten für Treiber für virtuelle PCI Express-Funktionen (PCIe) auf Geräten, die die Single-Root-E/A-Virtualisierungsschnittstelle (SR-IOV) unterstützen:
- Treiber für PCIe-VFs sollten die GetBusData-Routine unter IRQL <= APC_LEVEL aufrufen.
- Um PCI-Konfigurationsdaten für den VF unter IRQL = DISPATCH_LEVEL zu lesen, muss der Treiber E/A-Anforderungen von IRP_MN_READ_CONFIG ausstellen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | wdm.h (ntddk.h einschließen) |
IRQL | Weitere Informationen finden Sie im Abschnitt mit den Hinweisen. |