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) |