Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef _MPSPF_H_
#define _MPSPF_H_
#define MULTIPATH_CONTROL ((ULONG) 'mp')
//
// SP Filter's registration IOCTL.
//
//
#define IOCTL_MPADAPTER_REGISTER CTL_CODE (MULTIPATH_CONTROL, 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS)
//
// Input structure for DEVICE_NOTIFICATION
//
typedef struct _ADP_DEVICE_INFO { //
// Scsiport's PDO
//
PDEVICE_OBJECT DeviceObject;
//
// The associated device descriptor.
//
PSTORAGE_DEVICE_DESCRIPTOR DeviceDescriptor;
//
// The page 0x83 info.
//
PSTORAGE_DEVICE_ID_DESCRIPTOR DeviceIdList;
} ADP_DEVICE_INFO, *PADP_DEVICE_INFO;
typedef struct _ADP_DEVICE_LIST {
//
// Number of children in list.
//
ULONG NumberDevices;
//
// Array of child devices.
//
ADP_DEVICE_INFO DeviceList[1];
} ADP_DEVICE_LIST, *PADP_DEVICE_LIST;
typedef struct _ADP_ASSOCIATED_DEVICE_INFO { PDEVICE_OBJECT DeviceObject; UCHAR DeviceType; } ADP_ASSOCIATED_DEVICE_INFO, *PADP_ASSOCIATED_DEVICE_INFO;
typedef struct _ADP_ASSOCIATED_DEVICES { //
// Number of entries.
//
ULONG NumberDevices;
//
// Array of device + type
//
ADP_ASSOCIATED_DEVICE_INFO DeviceInfo[1]; } ADP_ASSOCIATED_DEVICES, *PADP_ASSOCIATED_DEVICES;
typedef PADP_ASSOCIATED_DEVICES (*PFLTR_DEVICE_LIST) ( IN PDEVICE_OBJECT FilterObject );
typedef NTSTATUS (*PADP_POWER_NOTIFICATION) ( IN PDEVICE_OBJECT ControlObject, IN PDEVICE_OBJECT FilterObject, IN PIRP Irp );
typedef NTSTATUS (*PADP_PNP_NOTIFICATION) ( IN PDEVICE_OBJECT ControlObject, IN PDEVICE_OBJECT FilterObject, IN PIRP Irp );
typedef NTSTATUS (*PADP_DEVICE_NOTIFICATION) ( IN PDEVICE_OBJECT ControlObject, IN PDEVICE_OBJECT FilterObject, IN PDEVICE_OBJECT PortObject, IN PADP_DEVICE_LIST DeviceList );
typedef struct _ADAPTER_REGISTER { PDEVICE_OBJECT FilterObject; PDEVICE_OBJECT PortFdo; PFLTR_DEVICE_LIST FltrGetDeviceList; PADP_PNP_NOTIFICATION PnPNotify; PADP_POWER_NOTIFICATION PowerNotify; PADP_DEVICE_NOTIFICATION DeviceNotify; } ADAPTER_REGISTER, *PADAPTER_REGISTER;
#endif // _MPSPF_H_
|