Usando a biblioteca WMI para registrar blocos
Um driver pode usar a Biblioteca WMI para lidar com solicitações de IRP_MN_REGINFO e IRP_MN_REGINFO_EX se estiver registrando blocos que não usam nomes de instância dinâmica ou que usam nomes de instância estáticos com base em uma cadeia de caracteres de nome base definida pelo driver ou PDO. Nesse caso, o driver:
Chama WmiSystemControl com um ponteiro para o objeto de dispositivo do driver, um ponteiro para uma estrutura WMILIB_CONTEXT e um ponteiro para o IRP
A estrutura WMILIB_CONTEXT indica o número de blocos a serem registrados (GuidCount) e aponta para uma lista de estruturas WMIGUIDREGINFO (GuidList) que especificam o GUID, o número de instâncias e os sinalizadores de registro pertencentes ao bloco correspondente. Ele também define pontos de entrada para as rotinas de retorno de chamada DpWmiXxxx obrigatórias e opcionais do driver.
Quando o WMI chama a rotina DpWmiQueryReginfo do driver, o driver especifica o caminho do registro do driver, seu nome de recurso MOF, sinalizadores de registro que pertencem a todos os seus blocos e informações que o WMI usa para nomear instâncias dos blocos de dados do driver, o que pode ser um ponteiro para o objeto de dispositivo físico passado para a rotina AddDevice do driver ou uma cadeia de caracteres na qual basear nomes de instância estática.
Um driver deve inicializar pontos de entrada para suas rotinas de retorno de chamada DpWmiXxx na estrutura WMILIB_CONTEXT antes de chamar WmiSystemControl, mas pode adiar a inicialização de GuidCount e GuidList na estrutura WMILIB_CONTEXT até que o WMI chame a rotina DpWmiQueryReginfo do driver.