SSDL для пользовательского режима, взаимодействующего с ядром

Я работаю над драйвером Windows, и мне нужно было использовать IOCTL для связи между программой пользовательского режима и моим драйвером, но я не совсем уверен, какой код SSDL мне следует использовать. На данный момент у меня есть следующее...

          PWDFDEVICE_INIT pInit = NULL;

    pInit = WdfControlDeviceInitAllocate(Driver, &SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RW_RES_R);

    if (pInit == NULL) {
        status = STATUS_INSUFFICIENT_RESOURCES;
        goto Error;
    }

    WdfDeviceInitSetExclusive(pInit, TRUE);

я установилWdfDeviceInitSetExclusiveэксклюзивное логическое значение TRUE, потому что я хочу, чтобы только один экземпляр моей программы пользовательского режима мог взаимодействовать с этой очередью. Однако мой главный вопрос касается того, какой SSDL мне следует использовать для связи ICOTL только для чтения и только для записи между пользовательским режимом и драйвером моего ядра. Судя по описанию внутриwdmsec.hКажется, чтоSDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_Rможет быть лучшим выбором для чтения, покаSDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_Rлучше всего подходит для записи, поскольку, похоже, SSDL для записи не существует.

0 ответов

Другие вопросы по тегам