Función WdfDeviceSetStaticStopRemove (wdfdevice.h)

[Se aplica a KMDF y UMDF]

El método WdfDeviceSetStaticStopRemove informa al marco de trabajo si se puede detener y quitar un dispositivo.

Sintaxis

void WdfDeviceSetStaticStopRemove(
  [in] WDFDEVICE Device,
  [in] BOOLEAN   Stoppable
);

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[in] Stoppable

Valor booleano que indica si el dispositivo especificado se puede detener y quitar. Si es TRUE, el dispositivo se puede detener y quitar. Si es FALSE, el dispositivo no se puede detener ni quitar.

Valor devuelto

None

Observaciones

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

De forma predeterminada, se puede detener y quitar un dispositivo. Por lo tanto, un controlador normalmente llama a WdfDeviceSetStaticStopRemove solo si debe establecer temporalmente el parámetro Stoppable en FALSE. Por ejemplo, un controlador que controla un escritor de DVD podría llamar a WdfDeviceSetStaticStopRemove con Stoppable establecido en FALSE antes de empezar a grabar un DVD. Una vez que el controlador haya terminado de grabar el DVD, llamaría a WdfDeviceSetStaticStopRemove de nuevo con Stoppable establecido en TRUE.

Si el dispositivo del controlador admite un archivo especial (consulte WdfDeviceSetSpecialFileSupport), el marco no permitirá que el dispositivo se detenga o quite. En este caso, el controlador no tiene que llamar a WdfDeviceSetStaticStopRemove .

El controlador debe coincidir con cada llamada a WdfDeviceSetStaticStopRemove con Stoppable establecido en FALSE con una llamada a WdfDeviceSetStaticStopRemove con Stoppable establecido en TRUE.

Al llamar a WdfDeviceSetStaticStopRemove con Stoppable establecido en FALSE , no se impide que el marco notifique al controlador si el dispositivo se quita inesperadamente (se quita sorpresa).

Para obtener más información sobre cómo evitar que el sistema operativo detenga un dispositivo, consulte Control de solicitudes para detener un dispositivo.

Ejemplos

En el ejemplo de código siguiente se informa al marco de trabajo que el dispositivo especificado no se puede detener ni quitar.

WdfDeviceSetStaticStopRemove(
                             device,
                             FALSE
                             );

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfdevice.h (incluya Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)