IOCTL_SCSI_GET_INQUIRY_DATA IOCTL (ntddscsi.h)
Gibt die SCSI-Abfragedaten für alle Geräte auf einem bestimmten SCSI-Hostbusadapter (HBA) zurück. Wenn die IOCTL im Benutzerbereich verwendet wird, muss das Programm ein Handle für den HBA geöffnet haben, das auf verschiedene Weise aufgelistet werden kann, z. B. SetupDixxx-Aufrufe. Sie können IOCTL_STORAGE_QUERY_PROPERTY verwenden, um Informationen zu einem bestimmten Gerät im HBA zu finden. Um die Erforderliche Größe des Ausgabepuffers zu bestimmen, sollte der Aufrufer diese IOCTL-Anforderung in einer Schleife senden. Jedes Mal, wenn der Speicherstapel die IOCTL mit einer Fehlermeldung ablehnt, die angibt, dass der Puffer zu klein war, sollte der Aufrufer die Puffergröße verdoppeln.
Hauptcode
Eingabepuffer
Keine.
Länge des Eingabepuffers
Keine.
Ausgabepuffer
Der Puffer bei Irp-AssociatedIrp.SystemBuffer> enthält die zurückgegebenen Abfragedaten. Eine Beschreibung des Layouts der Abfragedaten im Ausgabepuffer finden Sie unter SCSI_ADAPTER_BUS_INFO.
Länge des Ausgabepuffers
Parameters.DeviceIoControl.OutputBufferLength gibt die Größe des Puffers in Bytes an, die = (sizeof(SCSI_ADAPTER_BUS_INFO) + (NumberOfBuses) * sizeof(SCSI_BUS_DATA)) + (InquiryDataSize * NumberOfLUs) sein muss>, wobei die InquiryDataSize (sizeof(SCSI_INQUIRY_DATA) - 1 + INQUIRYDATABUFFERSIZE) auf eine Ausrichtungsgrenze aufgerundet ist.
Statusblock
Das Feld Information enthält die Anzahl der im Ausgabepuffer zurückgegebenen Bytes. Das Feld Status gibt die Ergebnisse des Vorgangs an.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddscsi.h (einschließen von Ntddscsi.h) |