Função NdisMCreateLog (ndis.h)
NdisMCreateLog aloca e abre um arquivo de log no qual um driver de miniporto pode gravar dados a serem exibidos por um aplicativo Win32 dedicado ao driver.
Sintaxe
NDIS_STATUS NdisMCreateLog(
[in] NDIS_HANDLE MiniportAdapterHandle,
[in] UINT Size,
[out] PNDIS_HANDLE LogHandle
);
Parâmetros
[in] MiniportAdapterHandle
Especifica a entrada do identificador para MiniportInitializeEx.
[in] Size
Especifica quantos bytes alocar para o arquivo de log. O NDIS cria um arquivo temporário que não é armazenado em disco.
[out] LogHandle
Ponteiro para uma variável fornecida pelo chamador na qual essa função retorna um identificador para o arquivo de log. Esse identificador é um parâmetro necessário para o NdisXxxLog funções que o driver de miniporto chama posteriormente.
Valor de retorno
NdisMCreateLog pode retornar um dos seguintes:
Código de retorno | Descrição |
---|---|
|
O driver de miniporto pode usar o identificador retornado em logHandle para gravar dados no arquivo de log alocado pelo NDIS. |
|
Não foi possível alocar um arquivo de log do tamanho especificado. |
|
O driver já chamado NdisMCreateLog com êxito. |
Observações
Um driver de miniporto pode chamar o NdisM.. Log funções para fornecer qualquer informação que o gravador de driver escolher. Qualquer que seja o log do driver de miniporto pode ser exibido por um aplicativo Win32 dedicado ao driver. Esse aplicativo chama a função Win32 DeviceIoControl com IOCTL_NDIS_GET_LOG_DATA periodicamente para recuperar o driver de miniporto gravado no arquivo de log. Por exemplo, um driver de miniporto em desenvolvimento pode gravar dados de teste a serem exibidos por seu aplicativo correspondente.
Se NdisMCreateLog retornar NDIS_STATUS_RESOURCES, o driver poderá ajustar o tamanho do original para baixo e tentar chamar essa função novamente. No entanto, um driver de miniporto não pode chamar NdisMCreateLog para criar mais de um arquivo de log depois que uma chamada for bem-sucedida.
Seja qual for o tamanho do arquivo de log alocado, chamadas subsequentes para NdisMWriteLogData armazenar dados neste arquivo, que é tratado como um buffer circular. Ou seja, uma sequência de chamadas para NdisMWriteLogData eventualmente substitui os dados originalmente gravados no arquivo de log.