Funzione ChangerGetElementStatus (mcd.h)
ChangerGetElementStatus gestisce gli aspetti specifici del dispositivo di un IRP con il codice IOCTL IOCTL_CHANGER_GET_ELEMENT_STATUS.
Sintassi
NTSTATUS ChangerGetElementStatus(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
Parametri
[in] DeviceObject
Puntatore all'oggetto dispositivo che rappresenta il modificatore.
[in] Irp
Puntatore all'IRP.
Valore restituito
ChangerGetElementStatus restituisce lo stato restituito dal driver della porta di sistema o uno dei valori seguenti:
STATUS_SUCCESS
STATUS_INFO_LENGTH_MISMATCH
STATUS_INSUFFICIENT_RESOURCES
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_ELEMENT_ADDRESS
Se VolumeTagInfo è impostato per un modificatore che non supporta le informazioni sui tag del volume, ChangerGetElementStatus restituisce STATUS_INVALID_PARAMETER.
Osservazioni
Questa routine è obbligatoria.
ChangerGetElementStatus restituisce lo stato e, facoltativamente, le informazioni sui tag del volume per tutti gli elementi di un modificatore o lo stato di un numero specifico di elementi di un particolare tipo.
Il driver della classe changer controlla le lunghezze del buffer di input e output nel percorso dello stack I/O prima di chiamare ChangerGetElementStatus.
Irp:>SystemBuffer punta a una struttura CHANGER_READ_ELEMENT_STATUS come parametro di input che indica gli elementi per cui segnalare lo stato e se segnalare le informazioni sui tag del volume.
ChangerGetElementStatus prima compila uno SRB con un cdb per leggere il comando di stato dell'elemento e lo invia al driver della porta di sistema per recuperare lo stato degli elementi del modificatore. Per la maggior parte dei tipi di elemento, ChangerGetElementStatus quindi compila una struttura CHANGER_ELEMENT_STATUS in Irp->AssociatedIrp.SystemBuffer per ogni elemento per cui segnala lo stato. Tuttavia, alcuni elementi di tipo ChangerDrive restituiscono dati sulle informazioni sul prodotto. Se il dispositivo fornisce informazioni sul prodotto, il driver miniclasse deve segnalare i dati di stato dell'elemento in una struttura di tipo CHANGER_ELEMENT_STATUS_EX anziché usare CHANGER_ELEMENT_STATUS. ChangerGetElementStatus deve indicare che le informazioni sul prodotto sono presenti impostando ELEMENT_STATUS_PRODUCT_DATA nel membro flag della struttura.
ChangerGetElementStatus imposta il campo Information nel blocco di stato I/O sul numero di byte restituiti prima di tornare al driver della classe del modificatore.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |