在WDM驱动中如何获得PCI卡的物理Slot号

在WDM驱动中如何获得PCI卡的物理Slot号?

系统提供了一个函数 IoGetDeviceProperty() 来实现这个功能。该函数的声明如下:

NTSTATUS
IoGetDeviceProperty(
IN PDEVICE_OBJECT DeviceObject,
IN DEVICE_REGISTRY_PROPERTY DeviceObject,
IN DEVICE_REGISTRY_PROPERTY DeviceProperty,
IN ULONG BufferLength,
OUT PVOID BufferLength,
OUT PVOID PropertyBuffer,
OUT PULONG ResultLength
);

当参数 DeviceProperty = DevicePropertyUINumber 时取回的就是PCI卡的物理Slot号。示例如下:

   ULONG  ulUINumber;
   IoGetDeviceProperty(
      pdo,
      DevicePropertyUINumber,
      sizeof( ULONG ),
      ( PVOID ) &ulUINumber,
      &ulLength );
pdo 参数可以在你的功能驱动的AddDevice例程中由BUS Driver传过来。

你可能感兴趣的:(Windows)