Funzione RxIndicateChangeOfBufferingStateForSrvOpen (rxprocs.h)
viene chiamato RxIndicateChangeOfBufferingStateForSrvOpen per registrare una richiesta di stato di buffering delle modifiche (un'indicazione di interruzione oplock, ad esempio) per un'elaborazione successiva. Se vengono soddisfatte le precondizioni necessarie, l'oplock viene elaborato ulteriormente.
Sintassi
void RxIndicateChangeOfBufferingStateForSrvOpen(
PMRX_SRV_CALL SrvCall,
PMRX_SRV_OPEN SrvOpen,
PVOID SrvOpenKey,
PVOID Context
);
Parametri
SrvCall
Puntatore alla struttura SRV_CALL.
SrvOpen
Puntatore alla struttura SRV_OPEN.
SrvOpenKey
Puntatore alla chiave per la struttura chiave SRV_OPEN.
Context
Puntatore al contesto da passare al mini-reindirizzamento di rete durante i callback per l'elaborazione della richiesta.
Valore restituito
Nessuno
Osservazioni
Questa routine registra la richiesta di stato del buffer delle modifiche inserendola nell'elenco di registrazioni (elaborazione A livello DPC) o nell'elenco di dispatcher/gestore appropriato.
Si tratta di un'istanza in cui nel buffering le indicazioni di modifica dello stato dal server usano la chiave generata dal client (l'indirizzo SRV_OPEN in sé è la chiave migliore che può essere usata). Ciò implica che non è necessaria alcuna ulteriore ricerca.
Tuttavia, se questa routine viene chiamata a livello DPC, l'indicazione viene elaborata come se fosse necessario eseguire la ricerca.
Se la risorsa per il cluster di failover è già stata acquisita da questo thread, l'indicazione di modifica dello stato del buffering viene elaborata immediatamente senza ulteriore ritardo. RxIndicateChangeOfBufferingStateForSrvOpen chiama RxChangeBufferingState immediatamente in questo caso.
Le routine interne chiamate da questa routine possono non riuscire a causa di una mancanza di memoria disponibile (non è possibile allocare memoria del pool non di paging, ad esempio), ma poiché si tratta di una routine VOID non viene restituito alcun errore quando si verifica questa condizione.
Se una richiesta di stato di buffering può essere elaborata immediatamente anziché essere accodata per l'elaborazione in un secondo momento, è possibile chiamare RxChangeBufferingState.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | rxprocs.h (include Rxprocs.h, Struchdr.h, Fcb.h) |
IRQL | <= APC_LEVEL |