estrutura NDIS_DEVICE_OBJECT_ATTRIBUTES (ndis.h)

A estrutura NDIS_DEVICE_OBJECT_ATTRIBUTES define os atributos de um dispositivo que um filtro NDIS ou driver de miniporto pode passar para a função NdisRegisterDeviceEx .

Sintaxe

typedef struct _NDIS_DEVICE_OBJECT_ATTRIBUTES {
  NDIS_OBJECT_HEADER Header;
  PNDIS_STRING       DeviceName;
  PNDIS_STRING       SymbolicName;
  PDRIVER_DISPATCH   *MajorFunctions;
  ULONG              ExtensionSize;
  PCUNICODE_STRING   DefaultSDDLString;
  LPCGUID            DeviceClassGuid;
} NDIS_DEVICE_OBJECT_ATTRIBUTES, *PNDIS_DEVICE_OBJECT_ATTRIBUTES;

Membros

Header

A estrutura NDIS_OBJECT_HEADER para a estrutura de NDIS_DEVICE_OBJECT_ATTRIBUTES. Defina o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES, o membro Revision como NDIS_DEVICE_OBJECT_ATTRIBUTES_REVISION_1 e o membro Size como NDIS_SIZEOF_DEVICE_OBJECT_ATTRIBUTES_REVISION_1.

DeviceName

Um ponteiro para uma variável do tipo NDIS_STRING que contém uma cadeia de caracteres Unicode terminada em nulo que nomeia o objeto do dispositivo. A cadeia de caracteres deve ser um nome de caminho completo, por exemplo, \Device\DeviceName. Para o Microsoft Windows 2000 e posterior, o NDIS define o tipo de NDIS_STRING como um tipo de UNICODE_STRING .

SymbolicName

Um ponteiro para uma variável do tipo NDIS_STRING que contém uma cadeia de caracteres Unicode que é o nome visível do Win32 do dispositivo que está sendo registrado. Normalmente, SymbolicName tem o seguinte formato: \DosDevices\SymbolicName.

MajorFunctions

Um ponteiro para uma matriz de um ou mais pontos de entrada para as rotinas de expedição do driver de dispositivo. Um driver deve definir o mesmo número de pontos de entrada de expedição separados que o número de códigos IRP_MJ_XXX que o driver manipula para o objeto do dispositivo. Cada rotina de expedição é declarada da seguinte maneira:

NTSTATUS
  (*PDRIVER_DISPATCH) (
    IN PDEVICE_OBJECT  DeviceObject,
    IN PIRP  Irp
);

A rotina de expedição tem os seguintes parâmetros:

DeviceObject

O objeto do dispositivo para a rotina de expedição.

Irp

O IRP para a rotina de expedição.

Um driver não deve fornecer pontos de entrada para manipuladores PnP ou Power Management, pois o objeto de dispositivo criado não é para um dispositivo físico e, portanto, não recebe PnP ou POWER Management IRPs.

ExtensionSize

O número determinado pelo driver de bytes a serem alocados para a extensão de dispositivo do objeto do dispositivo. A estrutura interna da extensão do dispositivo é definida pelo driver.

DefaultSDDLString

Uma representação de cadeia de caracteres para as configurações de segurança padrão do objeto do dispositivo. A segurança aplicada ao objeto do dispositivo é derivada dessa cadeia de caracteres.

A configuração de segurança é especificada em um subconjunto de SDDL (Linguagem de Definição de Descritor de Segurança). Um conjunto de constantes predefinidas (SDDL_DEVOBJ_XXX) também é fornecido. Para obter mais informações, consulte Protegendo objetos de dispositivo.

DeviceClassGuid

Reservado para NDIS. Defina esse membro como NULL.

Comentários

Um filtro NDIS ou um driver de miniporto podem chamar a função NdisRegisterDeviceEx para registrar um dispositivo. Para especificar os atributos do dispositivo, o driver aloca e inicializa uma estrutura NDIS_DEVICE_OBJECT_ATTRIBUTES e passa a estrutura para o parâmetro DeviceObjectAttributes de NdisRegisterDeviceEx.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Cabeçalho ndis.h (inclua Ndis.h)

Confira também

NDIS_OBJECT_HEADER

NdisRegisterDeviceEx

UNICODE_STRING