Condividi tramite


Funzione ChangerClassSendSrbSynchronous (mcd.h)

La routine ChangerClassSendSrbSynchronous invia in modo sincrono un SRB a un dispositivo specificato.

Sintassi

NTSTATUS ChangerClassSendSrbSynchronous(
  [in] PDEVICE_OBJECT      DeviceObject,
  [in] PSCSI_REQUEST_BLOCK Srb,
  [in] PVOID               Buffer,
  [in] ULONG               BufferSize,
  [in] BOOLEAN             WriteToDevice
);

Parametri

[in] DeviceObject

Puntatore all'oggetto dispositivo funzionale del dispositivo di destinazione.

[in] Srb

Puntatore a un blocco di richieste SCSI (SRB) parzialmente inizializzato da inviare al dispositivo di destinazione.

[in] Buffer

Specifica l'indirizzo del buffer a cui deve puntare Srb-DataBuffer>. ChangerClassSendSrbSynchronous crea un MDL per questo buffer e lo passa al driver di dispositivo di destinazione in IRP SRB.

[in] BufferSize

Specifica la lunghezza, in byte, del buffer.

[in] WriteToDevice

Indica un'operazione di scrittura quando TRUE e l'operazione di lettura quando FALSE.

Valore restituito

Restituisce STATUS_SUCCESS se la funzione SRB viene trasmessa correttamente o se il codice di errore appropriato ha esito negativo o non può essere inviato per qualche motivo.

Commenti

I driver miniclasse changer possono chiamare questa routine del driver di classe in Microsoft Windows XP e nei sistemi operativi successivi. I driver miniclass devono usare questa routine per inviare un SRB al driver di porta anziché chiamare direttamente la routine della libreria classpnp.sysClassSendSrbSynchronous . Anche se classpnp.sys viene fornito con Windows Driver Kit (WDK), non è un'API supportata e i driver che chiamano direttamente le routine di questa libreria potrebbero non funzionare correttamente nelle versioni future.

ChangerClassSendSrbSynchronous completa l'inizializzazione della SRB parzialmente inizializzata, impostando i flag SRB con i valori indicati nell'oggetto dispositivo della destinazione. ChangerClassSendSrbSynchronous crea l'IRP usato per trasmettere l'SRB al dispositivo di destinazione, invia l'IRP, quindi gestisce il completamento di IRP.

Se l'IRP ha esito negativo e i dati della richiesta di rilevamento indicano che è necessario ritentare l'IRP, ChangerClassSendSrbSynchronous invia nuovamente l'IRP.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione mcd.h (include Mcd.h, Ntddchgr.h)
Libreria Mcd.lib

Vedi anche

SCSI_REQUEST_BLOCK