Поделиться через


функция обратного вызова MINIPORT_REMOVE_DEVICE (ndis.h)

Функция MiniportRemoveDevice освобождает ресурсы, выделенные функцией MiniportAddDevice .

Примечание Функцию необходимо объявить с помощью типа MINIPORT_REMOVE_DEVICE . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

MINIPORT_REMOVE_DEVICE MiniportRemoveDevice;

void MiniportRemoveDevice(
  [in] NDIS_HANDLE MiniportAddDeviceContext
)
{...}

Параметры

[in] MiniportAddDeviceContext

Дескриптор для выделенной драйвером контекстной области, зарегистрированной драйвером мини-порта с помощью NDIS в функции MiniportAddDevice .

Возвращаемое значение

None

Remarks

Функция MiniportRemoveDevice является необязательной. Драйверы miniport, поддерживающие MSI-X, должны указывать точку входа для этой функции в NDIS_MINIPORT_PNP_CHARACTERISTICS структура.

Когда NDIS получает запрос от диспетчера Plug and Play (PnP) на удаление устройства, NDIS вызывает функцию MiniportRemoveDevice. Затем MiniportRemoveDevice должен отменить операции, выполняемые функцией MiniportAddDevice.

Адаптеры miniport могут быть остановлены и инициализированы несколько раз, прежде чем NDIS вызовет MiniportRemoveDevice. Если NDIS вызвал MiniportAddDevice и вернул NDIS_STATUS_SUCCESS, NDIS не будет вызывать MiniportAddDevice для того же адаптера минипорта, прежде чем вызывать MiniportRemoveDevice для этого адаптера.

NDIS вызывает MiniportRemoveDevice по адресу IRQL = PASSIVE_LEVEL.

Примеры

Чтобы определить функцию MiniportRemoveDevice , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию MiniportRemoveDevice с именем MyRemoveDevice, используйте тип MINIPORT_REMOVE_DEVICE , как показано в этом примере кода:

MINIPORT_REMOVE_DEVICE MyRemoveDevice;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
VOID
 MyRemoveDevice(
    NDIS_HANDLE  MiniportAddDeviceContext
    )
  {...}

Тип функции MINIPORT_REMOVE_DEVICE определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции MINIPORT_REMOVE_DEVICE в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье О поведении функции.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Windows
Header ndis.h (включая Ndis.h)
IRQL PASSIVE_LEVEL

См. также раздел

MiniportAddDevice

NDIS_MINIPORT_INIT_PARAMETERS

NDIS_MINIPORT_PNP_CHARACTERISTICS