Compartir a través de


Encabezado ntddscsi.h

El almacenamiento usa este encabezado. Para más información, consulte:

ntddscsi.h contiene las siguientes interfaces de programación:

IOCTL

 
IOCTL_ATA_PASS_THROUGH

Permite que una aplicación envíe casi cualquier comando de ATA a un dispositivo de destino, con las siguientes restricciones: _If existe un controlador de clase para el tipo de dispositivo de destino, la aplicación debe enviar la solicitud al controlador de clase.
IOCTL_ATA_PASS_THROUGH_DIRECT

Obtenga información sobre cómo IOCTL_ATA_PASS_THROUGH_DIRECT permite que una aplicación envíe casi cualquier comando de ATA a un dispositivo de destino.
IOCTL_MINIPORT_PROCESS_SERVICE_IRP

Este IOCTL lo usa una aplicación en modo de usuario o un controlador en modo kernel que requiere notificación cuando se produce algo de interés en la minipuerto virtual.
IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO

IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO es la firma definida por el sistema que se usa junto con el código de control IOCTL_SCSI_MINIPORT para solicitar que un miniporte devuelva datos de resistencia para un dispositivo de destino.
IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL

IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL es la firma que se usa junto con el código de control IOCTL_SCSI_MINIPORT para enviar datos específicos del protocolo a un miniporte.
IOCTL_MPIO_PASS_THROUGH_PATH

Este código de control de E/S permite a una aplicación o controlador de kernel enviar un comando SCSI a un LUN real designado.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT

Obtenga información sobre cómo este código de control de E/S permite a una aplicación o controlador de kernel enviar un comando SCSI a un LUN real designado.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX

La solicitud de código de control IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX es la versión extendida de la solicitud de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT. Esta solicitud proporciona compatibilidad con transferencias de datos bidireccionales y permite un bloque de datos de comandos (CDB) > de 16 bytes.
IOCTL_MPIO_PASS_THROUGH_PATH_EX

La solicitud de código de control IOCTL_MPIO_PASS_THROUGH_PATH_EX es la versión extendida de la solicitud de IOCTL_MPIO_PASS_THROUGH_PATH. Esta solicitud proporciona compatibilidad con transferencias de datos bidireccionales y permite un bloque de datos de comandos (CDB) > de 16 bytes.
IOCTL_SCSI_GET_ADDRESS

Devuelve la información de dirección, como el identificador de destino (TID) y el número de unidad lógica (LUN) de un destino SCSI determinado.
IOCTL_SCSI_GET_CAPABILITIES

Devuelve las funcionalidades y limitaciones del HBA SCSI subyacente.
IOCTL_SCSI_GET_INQUIRY_DATA

Devuelve los datos de consulta SCSI para todos los dispositivos de un adaptador de bus de host SCSI determinado (HBA).
IOCTL_SCSI_MINIPORT

Envía una función de control especial a un controlador de miniporte específico de HBA.
IOCTL_SCSI_MINIPORT_DIAGNOSTIC

El código de control IOCTL_SCSI_MINIPORT_DIAGNOSTIC se usa para realizar una solicitud de diagnóstico al Miniport.
IOCTL_SCSI_MINIPORT_HYBRID

El código de control IOCTL_SCSI_MINIPORT_HYBRID envía una solicitud de control de disco híbrido a un controlador de minipuerto específico de HBA.
IOCTL_SCSI_MINIPORT_NVCACHE

El código de aplicación en modo de usuario que se ejecuta con privilegios de administrador puede invocar las operaciones de administración de caché de NV definidas aquí, mediante DeviceIoControl y el código de control de IOCTL_SCSI_MINIPORT.
IOCTL_SCSI_PASS_THROUGH

Permite que una aplicación envíe casi cualquier comando SCSI a un dispositivo de destino, con las siguientes restricciones: no se permiten comandos multitarget, como COPY. No se admiten operaciones de transferencia de datos bidireccionales. Si existe un controlador de clase para el tipo de dispositivo de destino, la solicitud debe enviarse a ese controlador de clase. Por lo tanto, una aplicación puede enviar esta solicitud directamente al controlador de puerto del sistema para una unidad lógica de destino (LU) solo si no hay ningún controlador de clase para el tipo de dispositivo que está conectado a esa LU. El controlador de puerto del sistema no comprueba si un dispositivo ha sido reclamado por un controlador de clase antes de procesar una solicitud de paso a través. Por lo tanto, si una aplicación omite un controlador de clase que ha reclamado un dispositivo y envía una solicitud de paso a través para ese dispositivo directamente al controlador de puerto, puede producirse un conflicto para el control del dispositivo entre el controlador de clase y la aplicación. Si se envía una solicitud de paso a través a un objeto de dispositivo de adaptador y si se origina desde el modo de usuario y tiene como destino una LU reclamada por un controlador de clase, Storport produce un error en la solicitud con STATUS_INVALID_DEVICE_REQUEST. Si la solicitud se envía a un objeto de dispositivo LU, se origina en modo kernel o tiene como destino una LU no reclamada, se pasa al controlador de minipuerto. Esta solicitud no se puede usar si el CDB podría requerir que el controlador de minipuerto subyacente acceda directamente a la memoria. Si el CDB del autor de la llamada puede requerir acceso directo a la memoria, use IOCTL_SCSI_PASS_THROUGH_DIRECT en su lugar. Las aplicaciones no deben intentar enviar una solicitud de paso a través de forma asincrónica. Todas las solicitudes de paso a través deben ser sincrónicas. Las aplicaciones no requieren privilegios administrativos para enviar una solicitud de paso a través a un dispositivo, pero deben tener acceso de lectura y escritura al dispositivo. La aplicación que realiza la llamada crea el bloque descriptor de comandos SCSI, que puede incluir una solicitud de datos de detección de solicitudes si se produce una condición CHECK. IOCTL_SCSI_PASS_THROUGH es una solicitud de control de dispositivo almacenado en búfer. Para omitir el almacenamiento en búfer en la memoria del sistema, los llamadores deben usar IOCTL_SCSI_PASS_THROUGH_DIRECT. Al controlar una solicitud de IOCTL_SCSI_PASS_THROUGH_DIRECT, el sistema bloquea el búfer en la memoria del usuario y el dispositivo accede directamente a esta memoria. Esta solicitud se usa normalmente para transferir pequeñas cantidades de datos (<16 000). Las aplicaciones pueden enviar esta solicitud mediante una solicitud de IRP_MJ_DEVICE_CONTROL. Los controladores de clase de almacenamiento establecen el número IRP secundario en IRP_MN_SCSI_CLASS para indicar que una controlador de clase de almacenamiento ha procesado la solicitud.
IOCTL_SCSI_PASS_THROUGH_DIRECT

Permite que una aplicación envíe casi cualquier comando SCSI a un dispositivo de destino, con las siguientes restricciones: no se permiten comandos multitarget, como COPY. No se admiten operaciones de transferencia de datos bidireccionales. Si existe un controlador de clase para el tipo de dispositivo de destino, la solicitud debe enviarse a ese controlador de clase. Por lo tanto, una aplicación puede enviar esta solicitud directamente al controlador de puerto del sistema para una unidad lógica de destino solo si no hay ningún controlador de clase para el tipo de dispositivo conectado a esa LU. Esta solicitud debe realizarse si el CDB de entrada podría requerir que el controlador de miniporte subyacente acceda directamente a la memoria. La aplicación que realiza la llamada crea el bloque descriptor de comandos SCSI, que puede incluir una solicitud de datos de detección de solicitudes si se produce una condición CHECK. Si el CDB solicita una operación de transferencia de datos, el autor de la llamada debe configurar un búfer alineado del adaptador desde el que o en el que el controlador de minipuerto pueda transferir datos directamente. Esta solicitud se usa normalmente para transferir grandes cantidades de datos (>16 000). Las aplicaciones pueden enviar esta solicitud mediante una solicitud de IRP_MJ_DEVICE_CONTROL. Los controladores de clase de almacenamiento establecen el número IRP secundario en IRP_MN_SCSI_CLASS para indicar que una controlador de clase de almacenamiento ha procesado la solicitud.
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX

La solicitud de código de control IOCTL_SCSI_PASS_THROUGH_DIRECT_EX es la versión extendida de la solicitud de IOCTL_SCSI_PASS_THROUGH_DIRECT. Esta solicitud proporciona compatibilidad con transferencias de datos bidireccionales y permite un bloque de datos de comandos (CDB) > de 16 bytes.
IOCTL_SCSI_PASS_THROUGH_EX

La solicitud de código de control IOCTL_SCSI_PASS_THROUGH_EX es la versión extendida de la solicitud de IOCTL_SCSI_PASS_THROUGH. Esta solicitud proporciona compatibilidad con transferencias de datos bidireccionales y permite un bloque de datos de comandos (CDB) > de 16 bytes.
IOCTL_SCSI_RESCAN_BUS

Vuelve a examinar los LUN en los bus(es).

Estructuras

 
ATA_PASS_THROUGH_DIRECT

La estructura ATA_PASS_THROUGH_DIRECT se usa junto con una solicitud de IOCTL_ATA_PASS_THROUGH_DIRECT para indicar al controlador de puerto que envíe un comando ATA incrustado al dispositivo de destino.
ATA_PASS_THROUGH_EX

La estructura ATA_PASS_THROUGH_EX se usa junto con una solicitud de IOCTL_ATA_PASS_THROUGH para indicar al controlador de puerto que envíe un comando ATA incrustado al dispositivo de destino.
HYBRID_INFORMATION

La estructura HYBRID_INFORMATION contiene información sobre la funcionalidad del disco híbrido.
IO_SCSI_CAPABILITIES

La estructura IO_SCSI_CAPABILITIES se usa junto con la solicitud IOCTL_SCSI_GET_CAPABILITIES para recuperar las funcionalidades y limitaciones del adaptador de host SCSI subyacente. Nota Los modelos de controlador de puerto SCSI y controlador de minipuerto SCSI pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar los modelos del controlador Storport y del controlador storport miniport.
MPIO_PASS_THROUGH_PATH

La estructura MPIO_PASS_THROUGH_PATH se usa junto con una solicitud de IOCTL_MPIO_PASS_THROUGH_PATH para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino.
MPIO_PASS_THROUGH_PATH_DIRECT

La estructura MPIO_PASS_THROUGH_PATH_DIRECT se usa junto con una solicitud de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino.
MPIO_PASS_THROUGH_PATH_DIRECT_EX

La estructura de MPIO_PASS_THROUGH_PATH_DIRECT_EX se usa junto con una solicitud de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino.
MPIO_PASS_THROUGH_PATH_EX

La estructura de MPIO_PASS_THROUGH_PATH_EX se usa junto con una solicitud de IOCTL_MPIO_PASS_THROUGH_PATH_EX para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino.
NTSCSI_UNICODE_STRING

Los controladores de puerto de almacenamiento pueden usar la estructura NTSCSI_UNICODE_STRING para definir cadenas Unicode.
NV_FEATURE_PARAMETER

La estructura NV_FEATURE_PARAMETER se usa junto con la solicitud de IOCTL_SCSI_MINIPORT_NVCACHE para obtener la información de compatibilidad de características de NV Cache Manager del dispositivo.
NVCACHE_REQUEST_BLOCK

La estructura NVCACHE_REQUEST_BLOCK se usa junto con la solicitud de IOCTL_SCSI_MINIPORT para administrar dispositivos de disco duro híbrido (H-HDD) (por ejemplo, la tecnología Microsoft ReadyDrive).
SCSI_ADAPTER_BUS_INFO

La estructura SCSI_ADAPTER_BUS_INFO se usa junto con la solicitud de IOCTL_SCSI_GET_INQUIRY_DATA para recuperar los datos de consulta SCSI de todos los dispositivos en un bus SCSI determinado.
SCSI_ADDRESS

La estructura SCSI_ADDRESS se usa junto con la solicitud de IOCTL_SCSI_GET_ADDRESS para recuperar la información de dirección, como el identificador de destino (TID) y el número de unidad lógica (LUN) de un destino SCSI determinado.
SCSI_BUS_DATA

La estructura SCSI_BUS_DATA se usa junto con la solicitud IOCTL_SCSI_GET_INQUIRY_DATA y la estructura de SCSI_ADAPTER_BUS_INFO para recuperar los datos de consulta SCSI de todos los dispositivos en un bus SCSI determinado.
SCSI_INQUIRY_DATA

La estructura SCSI_INQUIRY_DATA se usa junto con la solicitud de IOCTL_SCSI_GET_INQUIRY_DATA para recuperar los datos de consulta SCSI de todos los dispositivos en un bus SCSI determinado.
SCSI_PASS_THROUGH

La estructura SCSI_PASS_THROUGH se usa junto con una solicitud de IOCTL_SCSI_PASS_THROUGH para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino.
SCSI_PASS_THROUGH_DIRECT

La estructura SCSI_PASS_THROUGH_DIRECT se usa junto con una solicitud de IOCTL_SCSI_PASS_THROUGH_DIRECT para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino.
SCSI_PASS_THROUGH_DIRECT_EX

La estructura SCSI_PASS_THROUGH_DIRECT_EX se usa junto con una solicitud de IOCTL_SCSI_PASS_THROUGH_DIRECT_EX para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino.
SCSI_PASS_THROUGH_EX

La estructura SCSI_PASS_THROUGH_EX se usa junto con una solicitud de IOCTL_SCSI_PASS_THROUGH_EX para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino.
SRB_IO_CONTROL

estructura de SRB_IO_CONTROL
STORAGE_DIAGNOSTIC_MP_REQUEST

Describe una solicitud de diagnóstico a Miniport. La estructura STORAGE_DIAGNOSTIC_MP_REQUEST se proporciona en el búfer de entrada y salida de una solicitud de IOCTL_SCSI_MINIPORT_DIAGNOSTIC.
STORAGE_ENDURANCE_DATA_DESCRIPTOR

Un minipuerto usa STORAGE_ENDURANCE_DATA_DESCRIPTOR para notificar la información de resistencia de un dispositivo al controlador de puerto de almacenamiento.
STORAGE_ENDURANCE_INFO

Un minipuerto usa la estructura STORAGE_ENDURANCE_INFO para notificar la información de resistencia de un dispositivo.

Enumeraciones

 
MP_STORAGE_DIAGNOSTIC_LEVEL

La enumeración MP_STORAGE_DIAGNOSTIC_LEVEL permite al autor de la llamada controlar qué tipos de datos debe devolver el proveedor.
MP_STORAGE_DIAGNOSTIC_TARGET_TYPE

La enumeración MP_STORAGE_DIAGNOSTIC_TARGET_TYPE especifica el tipo de destino de un diagnóstico de almacenamiento.