Funzione UcmTcpciPortControllerStart (ucmtcpciportcontroller.h)

Indica all'estensione della classe UcmTcpciCx che il driver client è ora pronto per gestire le richieste hardware per il controller di porta.

Sintassi

NTSTATUS UcmTcpciPortControllerStart(
  UCMTCPCIPORTCONTROLLER PortControllerObject
);

Parametri

PortControllerObject

Gestire l'oggetto controller di porta ricevuto dal driver client nella chiamata precedente a UcmTcpciPortControllerCreate.

Valore restituito

(NTSTATUS) Il metodo restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo può restituire un codice di errore NTSTATUS appropriato.

Codice restituito Descrizione
STATUS_INVALID_DEVICE_REQUEST
Il controller della porta è già nello stato Start.
STATUS_INVALID_HANDLE
La coda delle richieste hardware non è stata impostata chiamando UcmTcpciPortControllerSetHardwareRequestQueue.

Commenti

Dopo che il driver client ha ricevuto l'handle UCMPORTCONTROLLER per l'oggetto controller di porta, il driver chiama questo metodo per notificare all'estensione della classe che il driver può iniziare a ricevere richieste hardware. Questa chiamata al metodo consente al driver client di eseguire l'inizializzazione dello spazio del contesto del framework nell'oggetto controller di porta, prima che l'estensione della classe possa richiamare le funzioni di callback del driver o le richieste per l'oggetto controller di porta. Il driver non può chiamare UcmTcpciPortControllerAlert o UcmTcpciPortControllerStop fino all'avvio del controller di porta.

Il driver client chiama questo metodo subito dopo aver chiamato UcmTcpciPortControllerCreate e inizializzandone la struttura di contesto, se è stata specificata nella struttura WDF_OBJECT_ATTRIBUTES come valore del parametro Attributes . Il driver deve presupporre che l'estensione della classe possa inviare richieste anche prima che UcmTcpciPortControllerStart restituisca, ad esempio, dall'interno di questa chiamata DDI. Se il driver mantiene un blocco durante la chiamata a UcmTcpciPortControllerStart e tenta anche di acquisire un blocco durante la gestione di una richiesta hardware (nel callback della coda delle richieste hardware), potrebbe verificarsi un deadlock.

Una chiamata a UcmTcpciPortControllerStart per avviare un oggetto controller di porta già in stato Start genera un errore.

All'avvio, se il BIOS aveva già negoziato un contratto PD, UcmTcpciCx inizia da uno stato scollegato.

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Server minimo supportato Windows Server 2016
Piattaforma di destinazione Windows
Intestazione ucmtcpciportcontroller.h
Libreria Ucmtcpcicxstub.lib
IRQL PASSIVE_LEVEL

Vedi anche

UcmTcpciPortControllerStop