функция обратного вызова GET_SET_DEVICE_DATA (wdm.h)
Подпрограмма GetBusData считывает данные из пространства конфигурации устройства.
Синтаксис
GET_SET_DEVICE_DATA GetSetDeviceData;
ULONG GetSetDeviceData(
[in] PVOID Context,
[in] ULONG DataType,
[in] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
)
{...}
Параметры
[in] Context
Указатель на сведения о контексте для конкретного интерфейса. Вызывающий объект передает значение, переданное в качестве элемента Contextструктуры BUS_INTERFACE_STANDARD для интерфейса.
[in] DataType
Тип считываемых данных шины. Дополнительные сведения см. в описании параметра WhichSpace в IRP_MN_READ_CONFIG.
[in] Buffer
Указатель на буфер, содержащий сведения о конфигурации, считываемые из пространства конфигурации устройства.
[in] Offset
Смещение данных устройства, относящихся к шине, с которого начинается эта операция чтения. Например, если параметр DataType имеет значение PCI_WHICHSPACE_CONFIG, значение параметра Offset представляет собой смещение в пространстве конфигурации PCI.
[in] Length
Длина считываемых данных в байтах.
Возвращаемое значение
Подпрограмма GetBusData возвращает длину в байтах данных конфигурации, которые считываются после успешной операции чтения. Если операция чтения завершается неудачно, возвращается значение, равное нулю.
Комментарии
В зависимости от значения параметра DataType подпрограмму GetBusData можно вызывать только из уровней запросов прерываний (IRQL), определенных в следующей таблице.
Значение 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 |
Следующие замечания относятся к драйверам для виртуальных функций PCI Express (PCIe) на устройствах, поддерживающих интерфейс SR-IOV.
- Драйверы для ВИРТУАЛЬНЫх машин PCIe должны вызывать подпрограмму GetBusData в IRQL <= APC_LEVEL.
- Чтобы считывать данные конфигурации PCI для VF в IRQL = DISPATCH_LEVEL, драйвер должен выдавать запросы ввода-вывода IRP_MN_READ_CONFIG.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Ntddk.h) |
IRQL | См. раздел "Примечания". |