コード例 #1
0
NTSTATUS
initwsk(PWSK_REGISTRATION clireg, PWSK_PROVIDER_NPI pronpi)
{
	NTSTATUS            status;
	WSK_CLIENT_NPI      clinpi;
	WSK_CLIENT_DISPATCH dispatch = { MAKE_WSK_VERSION(1, 0), 0, NULL };

	clinpi.ClientContext = NULL;
	clinpi.Dispatch      = &dispatch;

	status = WskRegister(&clinpi, clireg);
	if(!NT_SUCCESS(status)){
		DbgPrint("WskRegister() error : 0x%X\n", status);
		return status;
	}

	status = WskCaptureProviderNPI(clireg, WSK_INFINITE_WAIT, pronpi);
	if(!NT_SUCCESS(status)){
		DbgPrint("WskCaptureProviderNPI() error : 0x%X\n", status);
		WskDeregister(clireg);
		return status;
	}

	return STATUS_SUCCESS;
}
コード例 #2
0
ファイル: wsk2.c プロジェクト: airhigh/wdrbd

#include "drbd_windows.h"
#include "wsk2.h"

extern bool drbd_stream_send_timed_out(struct drbd_transport *transport, enum drbd_stream stream);

WSK_REGISTRATION			g_WskRegistration;
static WSK_PROVIDER_NPI		g_WskProvider;
static WSK_CLIENT_DISPATCH	g_WskDispatch = { MAKE_WSK_VERSION(1, 0), 0, NULL };
LONG						g_SocketsState = DEINITIALIZED;

NTSTATUS
NTAPI CompletionRoutine(
	__in PDEVICE_OBJECT	DeviceObject,
	__in PIRP			Irp,
	__in PKEVENT		CompletionEvent
)
{
	ASSERT(CompletionEvent);
	KeSetEvent(CompletionEvent, IO_NO_INCREMENT, FALSE);
	return STATUS_MORE_PROCESSING_REQUIRED;
}

NTSTATUS
InitWskData(
	__out PIRP*		pIrp,
	__out PKEVENT	CompletionEvent
)
{
	ASSERT(pIrp);
	ASSERT(CompletionEvent);