EVT_URS_SET_ROLE Rückruffunktion (ursdevice.h)
Die URS-Klassenerweiterung ruft diesen Ereignisrückruf auf, wenn der Clienttreiber die Rolle des Controllers ändern muss.
Syntax
EVT_URS_SET_ROLE EvtUrsSetRole;
NTSTATUS EvtUrsSetRole(
[in] WDFDEVICE Device,
[in] URS_ROLE Role
)
{...}
Parameter
[in] Device
Ein Handle für das Framework-Geräteobjekt, das der Clienttreiber im vorherigen Aufruf von WdfDeviceCreate abgerufen hat.
[in] Role
Ein URS_ROLE Typwert, der die rolle angibt, die für das Controllergerät festgelegt werden soll.
Rückgabewert
Wenn der Vorgang erfolgreich ist, muss die Rückruffunktion STATUS_SUCCESS oder einen anderen status Wert zurückgeben, für den NT_SUCCESS(status) true entspricht. Andernfalls muss ein status Wert zurückgegeben werden, für den NT_SUCCESS(status) false entspricht.
Hinweise
Um die Implementierung des Ereignisrückrufs durch den Clienttreiber zu registrieren, muss der Treiber das EvtUrsSetRole-Element von URS_CONFIG auf einen Funktionszeiger der Implementierungsmethode festlegen und dann die UrsDeviceInitialize-Methode aufrufen, indem die aufgefüllte Struktur übergeben wird. Der Treiber muss die -Methode aufrufen, nachdem er das Framework-Geräteobjekt für den Controller erstellt hat.
Beispiele
NTSTATUS
EvtUrsSetRole (
_In_ WDFDEVICE Device,
_In_ URS_ROLE Role
)
{
NTSTATUS status;
PFDO_CONTEXT fdoContext;
TRACE_FUNC_ENTRY(TRACE_FLAG);
TRY {
// Change the current role of the controller to the specified role.
// The driver might have stored the control registers in the device context.
// Read and write the register to get and set the current role.
}
TRACE_INFO(TRACE_FLAG, "[Device: 0x%p] Successfully set role to %!URS_ROLE!", Device, Role);
status = STATUS_SUCCESS;
} FINALLY {
}
TRACE_FUNC_EXIT(TRACE_FLAG);
return status;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 |
Unterstützte Mindestversion (Server) | Windows Server 2016 |
Zielplattform | Windows |
KMDF-Mindestversion | 1.15 |
Kopfzeile | ursdevice.h (include Urscx.h) |
IRQL | PASSIVE_LEVEL |