Funzione RxFsdDispatch (mrx.h)

RxFsdDispatch implementa l'invio del driver di file system (FSD) per RDBSS per elaborare un pacchetto di richiesta I/O (IRP). Un puntatore a questa routine viene copiato nella tabella di invio del driver del dispositivo per il driver di mini-reindirizzamento di rete dalla routine RxDriverEntry quando RDBSS viene inizializzato.

Sintassi

NTSTATUS RxFsdDispatch(
  [in] IN PRDBSS_DEVICE_OBJECT RxDeviceObject,
  [in] IN PIRP                 Irp
);

Parametri

[in] RxDeviceObject

Puntatore all'oggetto dispositivo RDBSS per questo mini-reindirizzamento di rete.

[in] Irp

Puntatore al pacchetto di richiesta di I/O da elaborare.

Valore restituito

RxFsdDispatch restituisce uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INVALID_DEVICE_REQUEST Una richiesta è stata effettuata in un oggetto dispositivo non valido. Ad esempio, questo errore viene restituito se un oggetto file system viene passato come parametro RxDeviceObject . Questo valore di stato indica l'errore.
STATUS_OBJECT_NAME_INVALID È stata effettuata una richiesta non valida per creare una pipe denominata o una mailslot (il membro MajorFunctiondell'Irp era IRP_MJ_CREATE_MAILSLOT o IRP_MJ_CREATE_NAMED_PIPE). Questo valore di stato indica l'errore.
STATUS_PENDING È stata effettuata una richiesta asincrona e lo stato della richiesta è in sospeso.
STATUS_SUCCESS La chiamata di routine RxFsdDispatch ha avuto esito positivo.

Commenti

RxFsdDispatch viene chiamato da RDBSS per elaborare un pacchetto di richiesta di I/O (IRP). Questi IRP vengono normalmente ricevuti da RDBSS in risposta a un'applicazione in modalità utente che richiede operazioni su un file. È anche possibile che un altro driver del kernel esecchi tale IRP.

Una routine di puntatore a RxFsdDispatch viene copiata sulla tabella di invio driver per un driver di mini-reindirizzamento di rete quando viene chiamata la routine RxDriverEntry per inizializzare RDBSS.

Internamente, RDBSS gestisce due vettori di invio:

  • Vettore di invio comune per la maggior parte delle operazioni.

  • Vettore di invio privato per le operazioni FCB del dispositivo file.

Se l'IRP è una richiesta di IRP_MJ_CREATE, RxFsdDispatch userà un vettore di invio comune. Se l'IRP è per un'operazione su un fcB di un oggetto file, RxFsdDispatch verificherà se deve essere usato un vettore di invio privato. In caso contrario, verrà usato un vettore di invio comune per elaborare l'IRP.

RxFsdDispatch chiama routine interne per elaborare i irp standard più dei quali comportano una chiamata a una delle routine di callback implementate dal driver di mini-reindirizzamento di rete.

Alcuni IRP vengono trattati come speciali e gestiti internamente da RDBSS. Ad esempio, la IRP_MJ_SYSTEM_CONTROL viene usata internamente se WMI è abilitato. IRP_MJ_CREATE_MAILSLOT o richieste di IRP_MJ_CREATE_NAMED_PIPE vengono trattate appositamente e rifiutate (viene restituito un errore di STATUS_OBJECT_NAME_INVALID).

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione mrx.h (include Mrx.h, Rxstruc.h, Struchdr.h)
IRQL <= APC_LEVEL

Vedi anche

RxDriverEntry