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 |