NTSTATUS KeI386GetLid( IN USHORT DeviceId, IN USHORT RelativeLid, IN BOOLEAN SharedLid, IN PDRIVER_OBJECT DriverObject, OUT PUSHORT LogicalId ); Routine Description: This function searches Device Blocks and Common Data Area for the Logical Id matching the specified Device Id. N.B. To speed the search, this routine ASSUMES that the LIDs with the same Device ID always appear consecutively in the Common Data Area. IBM ABIOS doc does not explicitly specify this. But from the way ABIOS initializes Device Block and Function Transfer Table, I think the assumption is true. Arguments: DeviceId - Desired Device Id. RelativeLid - Specifies the Nth logical Id for this device Id. A value of 0 indicates the first available Lid. SharedLid - A boolean value indicates if it is a shared or exclusively owned logical Id. DriverObject - Supplies a 32-bit flat pointer of the requesting device driver's driver object. The DriverObject is used to establish the ownership of the desired LID. LogicalId - A pointer to a variable which will receive the Lid. Return Value: STATUS_SUCCESS - If the requested LID is available. STATUS_ABIOS_NOT_PRESENT - If there is no ABIOS support in the system. STATUS_ABIOS_LID_NOT_EXIST - If the specified LID does not exist. STATUS_ABIOS_LID_ALREADY_OWNED - If the caller requests an exclusively owned LID.