예제 #1
0
파일: eventpair.c 프로젝트: bragin/ring3k
static void test_eventpair(void)
{
	NTSTATUS r;
	HANDLE eventpair;

	r = NtCreateEventPair( NULL, STANDARD_RIGHTS_ALL, NULL );
	ok(r == STATUS_ACCESS_VIOLATION, "return wrong %08lx\n", r);

	r = NtCreateEventPair( &eventpair, STANDARD_RIGHTS_ALL, NULL );
	ok(r == STATUS_SUCCESS, "return wrong %08lx\n", r);

	r = NtSetLowEventPair( eventpair );
	ok(r == STATUS_SUCCESS, "return wrong %08lx\n", r);

	r = NtWaitLowEventPair( eventpair );
	ok(r == STATUS_SUCCESS, "return wrong %08lx\n", r);

	r = NtSetHighEventPair( eventpair );
	ok(r == STATUS_SUCCESS, "return wrong %08lx\n", r);

	r = NtWaitHighEventPair( eventpair );
	ok(r == STATUS_SUCCESS, "return wrong %08lx\n", r);

	r = NtClose( eventpair );
	ok(r == STATUS_SUCCESS, "return wrong %08lx\n", r);
}
예제 #2
0
INT_PTR CALLBACK PhpEventPairPageProc(
    _In_ HWND hwndDlg,
    _In_ UINT uMsg,
    _In_ WPARAM wParam,
    _In_ LPARAM lParam
)
{
    PCOMMON_PAGE_CONTEXT pageContext;

    pageContext = PhpCommonPageHeader(hwndDlg, uMsg, wParam, lParam);

    if (!pageContext)
        return FALSE;

    switch (uMsg)
    {
    case WM_INITDIALOG:
    {
        // Nothing
    }
    break;
    case WM_COMMAND:
    {
        switch (LOWORD(wParam))
        {
        case IDC_SETLOW:
        case IDC_SETHIGH:
        {
            NTSTATUS status;
            HANDLE eventPairHandle;

            if (NT_SUCCESS(status = pageContext->OpenObject(
                                        &eventPairHandle,
                                        EVENT_PAIR_ALL_ACCESS,
                                        pageContext->Context
                                    )))
            {
                switch (LOWORD(wParam))
                {
                case IDC_SETLOW:
                    NtSetLowEventPair(eventPairHandle);
                    break;
                case IDC_SETHIGH:
                    NtSetHighEventPair(eventPairHandle);
                    break;
                }

                NtClose(eventPairHandle);
            }

            if (!NT_SUCCESS(status))
                PhShowStatus(hwndDlg, L"Unable to open the event pair", status, 0);
        }
        break;
        }
    }
    break;
    }

    return FALSE;
}